Requirement.yml code doesn't filter by version
If you use this requirements.yml file, you will end up with 3 collection versions. However, you should only have 1 as the two releases for testing.ansible_testing_content are 4.0.4 and 4.0.6 which don't match ">=1.0.0,<=2.0.0", and there's only one release of testing.k8s_demo_collection.
To reproduce this in a test environment, change this line to use assertEqual since ANSIBLE_COLLECTION_FIXTURE_COUNT is 1.
Refactors sync to use asyncio more and many tests
The previous sync machinery design was very complicated due to treating the asynchronous coroutines as synchronous code. This rewrites the sync code to have the coroutines track the work instead.
In doing the rewrite several bugs were fixed also:
- versions in requirements.yml are now respected
- requirements.yml with different sources are now respected too
It also makes many test improvements:
- refactors Galaxy V2 sync tests to be bindings based
- adds may more tests
#3 Updated by daviddavis 6 months ago
Here is a test I wrote:
def test_sync_with_version_requirement(self): """Test to sync down a role using a version requirement""" requirements_file = "collections:\n - name: amazon.aws\n version: \"<0.1.3\"" repo = self.client.post(ANSIBLE_REPO_PATH, gen_repo()) self.addCleanup(self.client.delete, repo["pulp_href"]) collection_remote = self.client.post( ANSIBLE_COLLECTION_REMOTE_PATH, gen_ansible_remote( url=ANSIBLE_GALAXY_COLLECTION_URL_V2.rstrip("/"), requirements_file=requirements_file, ), ) self.addCleanup(self.client.delete, collection_remote["pulp_href"]) sync(self.cfg, collection_remote, repo, mirror=True) repo = self.client.get(repo["pulp_href"]) content_summary = get_content_summary(repo) self.assertLess( content_summary[ANSIBLE_COLLECTION_CONTENT_NAME], 3 )
Here's the failure:
AssertionError: 10 not less than 3
- Status changed from POST to MODIFIED
Applied in changeset pulp_ansible|2ab95bd8a607262c6ec220fd0ab43d6351b10ea9.
Please register to edit this issue