diff --git a/CHANGES/8276.bugfix b/CHANGES/8276.bugfix new file mode 100644 index 000000000..fd93e3ae3 --- /dev/null +++ b/CHANGES/8276.bugfix @@ -0,0 +1 @@ +Fix V3 collection list endpoint when repository is empty diff --git a/pulp_ansible/app/galaxy/v3/views.py b/pulp_ansible/app/galaxy/v3/views.py index 897ff88e2..cac77dbdc 100644 --- a/pulp_ansible/app/galaxy/v3/views.py +++ b/pulp_ansible/app/galaxy/v3/views.py @@ -280,7 +280,7 @@ def get_serializer_context(self, *args, **kwargs): super_data = super().get_serializer_context() if getattr(self, "available_versions_context", None): super_data["available_versions"] = self.available_versions_context - super_data["deprecated_collections"] = self.deprecated_collections_context + super_data["deprecated_collections"] = getattr(self, "deprecated_collections_context", []) return super_data def update(self, request, *args, **kwargs): diff --git a/pulp_ansible/tests/functional/cli/test_collection_upload.py b/pulp_ansible/tests/functional/cli/test_collection_upload.py index bd13e7174..5aea9d581 100644 --- a/pulp_ansible/tests/functional/cli/test_collection_upload.py +++ b/pulp_ansible/tests/functional/cli/test_collection_upload.py @@ -9,6 +9,7 @@ from pulpcore.client.pulp_ansible import ( DistributionsAnsibleApi, + PulpAnsibleGalaxyApiCollectionsApi, PulpAnsibleGalaxyApiV3VersionsApi, RemotesCollectionApi, RepositoriesAnsibleApi, @@ -33,6 +34,7 @@ def setUpClass(cls): cls.repo_versions_api = RepositoriesAnsibleVersionsApi(cls.client) cls.remote_collection_api = RemotesCollectionApi(cls.client) cls.distributions_api = DistributionsAnsibleApi(cls.client) + cls.collections_v3api = PulpAnsibleGalaxyApiCollectionsApi(cls.client) cls.collections_versions_v3api = PulpAnsibleGalaxyApiV3VersionsApi(cls.client) def test_upload_collection(self): @@ -88,6 +90,10 @@ def test_upload_collection_with_requires_ansible(self): distribution = self.distributions_api.read(created_resources[0]) self.addCleanup(self.distributions_api.delete, distribution.pulp_href) + + collections = self.collections_v3api.list(distribution.base_path) + self.assertEqual(collections.meta.count, 0) + colletion_path = os.path.join( os.getcwd(), "pulp_ansible/tests/assets/collections/pulp-testing_asset-1.0.0.tar.gz" ) @@ -98,6 +104,9 @@ def test_upload_collection_with_requires_ansible(self): subprocess.run(cmd.split()) wait_tasks() + collections = self.collections_v3api.list(distribution.base_path) + self.assertEqual(collections.meta.count, 1) + repo = self.repo_api.read(repo.pulp_href) repo_version = self.repo_versions_api.read(repo.latest_version_href) self.assertEqual(repo_version.number, 1) # We uploaded 1 collection