Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGES/+fix-list-signing-services-cmd.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix an error when running `pulpcore-manager list-signing-services`.
2 changes: 1 addition & 1 deletion pulpcore/app/management/commands/list-signing-services.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ def add_arguments(self, parser):
def handle(self, *args, **options):
SigningService = apps.get_model("core", "SigningService")
results = list(SigningService.objects.all().values_list("name", flat=True))
self.stdout.write(results)
self.stdout.write("\n".join(results))
44 changes: 44 additions & 0 deletions pulpcore/tests/unit/test_list_signing_services_command.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import pytest
from io import StringIO
from unittest.mock import patch

from django.core.management import call_command

from pulpcore.app.models.content import AsciiArmoredDetachedSigningService


@pytest.mark.django_db
def test_list_signing_services_empty():
"""Test the list-signing-services command with no signing services."""
out = StringIO()
call_command("list-signing-services", stdout=out)
assert out.getvalue().strip() == ""


@pytest.mark.django_db
def test_list_signing_services(tmp_path):
"""Test the list-signing-services command with multiple signing services."""
# Create a dummy script file
script_file = tmp_path / "signing_script.sh"
script_file.write_text("#!/bin/bash\necho 'test'")

# Create multiple signing services with mocked validate() method
for name in ["service-a", "service-b", "service-c"]:
service = AsciiArmoredDetachedSigningService(
name=name,
public_key=f"key-{name[-1]}",
pubkey_fingerprint=f"fingerprint-{name[-1]}",
script=str(script_file),
)
# Mock the validate method to bypass GPG verification
with patch.object(service, "validate", return_value=None):
service.save()

out = StringIO()
call_command("list-signing-services", stdout=out)
output_lines = out.getvalue().strip().split("\n")

# Check that all service names are present
assert "service-a" in output_lines
assert "service-b" in output_lines
assert "service-c" in output_lines