def test_add_docker_repo_to_composite_content_view(self): """@Test: Add one Docker-type repository to a composite content view @Assert: A repository is created with a Docker repository and the product is added to a content view which is then added to a composite content view. @Feature: Docker """ self._create_and_associate_repo_with_cv() ContentView.publish({'id': self.content_view['id']}) self.content_view = ContentView.info({ 'id': self.content_view['id']}) self.assertEqual(len(self.content_view['versions']), 1) comp_content_view = make_content_view({ 'composite': True, 'organization-id': self.org_id, }) ContentView.update({ 'id': comp_content_view['id'], 'component-ids': self.content_view['versions'][0]['id'], }) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) self.assertIn( self.content_view['versions'][0]['id'], [component['id'] for component in comp_content_view['components']], )
def test_promote_multiple_docker_repo_composite_content_view(self): """@Test: Add Docker-type repository to composite content view and publish it. Then promote it to the multiple available lifecycle-environments. @Assert: Docker-type repository is promoted to content view found in the specific lifecycle-environments. @Feature: Docker """ self._create_and_associate_repo_with_cv() ContentView.publish({'id': self.content_view['id']}) self.content_view = ContentView.info({ 'id': self.content_view['id']}) self.assertEqual(len(self.content_view['versions']), 1) comp_content_view = make_content_view({ 'composite': True, 'organization-id': self.org_id, }) ContentView.update({ 'component-ids': self.content_view['versions'][0]['id'], 'id': comp_content_view['id'], }) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) self.assertIn( self.content_view['versions'][0]['id'], [ component['id'] for component in comp_content_view['components'] ], ) ContentView.publish({'id': comp_content_view['id']}) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) cvv = ContentView.version_info({ 'id': comp_content_view['versions'][0]['id'], }) self.assertEqual(len(cvv['lifecycle-environments']), 1) for i in range(1, randint(3, 6)): lce = make_lifecycle_environment({'organization-id': self.org_id}) ContentView.version_promote({ 'id': comp_content_view['versions'][0]['id'], 'lifecycle-environment-id': lce['id'], }) cvv = ContentView.version_info({ 'id': comp_content_view['versions'][0]['id'], }) self.assertEqual(len(cvv['lifecycle-environments']), i+1)
def test_add_docker_repo_composite_view_to_activation_key(self): """@Test: Add Docker-type repository to a non-composite content view and publish it. Then add this content view to a composite content view and publish it. Create an activation key and associate it with the composite Docker content view. @Assert: Docker-based content view can be added to activation key @Feature: Docker """ comp_content_view = make_content_view({ 'composite': True, 'organization-id': self.org['id'], }) ContentView.update({ 'component-ids': self.content_view['versions'][0]['id'], 'id': comp_content_view['id'], }) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) self.assertIn( self.content_view['versions'][0]['id'], [ component['id'] for component in comp_content_view['components'] ], ) ContentView.publish({'id': comp_content_view['id']}) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) comp_cvv = ContentView.version_info({ 'id': comp_content_view['versions'][0]['id'], }) ContentView.version_promote({ 'id': comp_cvv['id'], 'lifecycle-environment-id': self.lce['id'], }) activation_key = make_activation_key({ 'content-view-id': comp_content_view['id'], 'lifecycle-environment-id': self.lce['id'], 'organization-id': self.org['id'], }) self.assertEqual( activation_key['content-view'], comp_content_view['name'])
def test_add_multiple_docker_repos_to_composite_content_view(self): """@Test: Add multiple Docker-type repositories to a composite content view. @Assert: One repository is created with a Docker image and the product is added to a random number of content views which are then added to a composite content view. @Feature: Docker """ cv_versions = [] product = make_product({'organization-id': self.org_id}) for _ in range(randint(2, 5)): content_view = make_content_view({ 'composite': False, 'organization-id': self.org_id, }) repo = _make_docker_repo(product['id']) ContentView.add_repository({ 'id': content_view['id'], 'repository-id': repo['id'], }) ContentView.publish({'id': content_view['id']}) content_view = ContentView.info({'id': content_view['id']}) self.assertEqual(len(content_view['versions']), 1) cv_versions.append(content_view['versions'][0]) comp_content_view = make_content_view({ 'composite': True, 'organization-id': self.org_id, }) ContentView.update({ 'component-ids': [cv_version['id'] for cv_version in cv_versions], 'id': comp_content_view['id'], }) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) for cv_version in cv_versions: self.assertIn( cv_version['id'], [ component['id'] for component in comp_content_view['components'] ], )
def test_publish_multiple_docker_repo_composite_content_view(self): """@Test: Add Docker-type repository to content view and publish it multiple times. @Assert: One repository is created with a Docker image and the product is added to a content view which is then added to a composite content view which is then published multiple times. @Feature: Docker """ self._create_and_associate_repo_with_cv() self.assertEqual(len(self.content_view['versions']), 0) ContentView.publish({'id': self.content_view['id']}) self.content_view = ContentView.info({ 'id': self.content_view['id']}) self.assertEqual(len(self.content_view['versions']), 1) comp_content_view = make_content_view({ 'composite': True, 'organization-id': self.org_id, }) ContentView.update({ 'component-ids': self.content_view['versions'][0]['id'], 'id': comp_content_view['id'], }) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) self.assertIn( self.content_view['versions'][0]['id'], [ component['id'] for component in comp_content_view['components'] ], ) publish_amount = randint(2, 5) for _ in range(publish_amount): ContentView.publish({'id': comp_content_view['id']}) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }) self.assertEqual(len(comp_content_view['versions']), publish_amount)
def test_add_docker_repo_to_composite_content_view(self): """@Test: Add one Docker-type repository to a composite content view @Assert: A repository is created with a Docker repository and the product is added to a content view which is then added to a composite content view. @Feature: Docker """ repo = _make_docker_repo( make_product({'organization-id': self.org_id})['id']) content_view = make_content_view({ 'composite': False, 'organization-id': self.org_id, }) result = ContentView.add_repository({ 'id': content_view['id'], 'repository-id': repo['id'], }) self.assertEqual(result.return_code, 0) content_view = ContentView.info({'id': content_view['id']}).stdout self.assertIn( repo['id'], [repo_['id'] for repo_ in content_view['docker-repositories']], ) result = ContentView.publish({'id': content_view['id']}) self.assertEqual(result.return_code, 0) content_view = ContentView.info({'id': content_view['id']}).stdout self.assertEqual(len(content_view['versions']), 1) comp_content_view = make_content_view({ 'composite': True, 'organization-id': self.org_id, }) result = ContentView.update({ 'id': comp_content_view['id'], 'component-ids': content_view['versions'][0]['id'], }) self.assertEqual(result.return_code, 0) comp_content_view = ContentView.info({ 'id': comp_content_view['id'], }).stdout self.assertIn( content_view['versions'][0]['id'], [component['id'] for component in comp_content_view['components']], )