def test_basic_update(self, test_data): """ @feature: Permissions @test: try to update entity first with relevant permissionn @assert: entity is removed """ entity = test_data() created = ApiCrud.record_create_recursive(entity) created = test_data._meta.change_for_update(created) user_definition = User() user_created = ApiCrud.record_create_recursive(user_definition) # user doesn't yet have relevant permission, action should fail with self.assertRaises(Exception): ApiCrud.record_update(created, user_definition) perm = ApiCrud.record_resolve( test_data._meta.api_class.permissions.update) add_permission_to_user(user_created, perm) # user should have the relevant permission, action should updated = ApiCrud.record_update(created, user_definition) del created["updated_at"] del updated["updated_at"] self.assertIntersects(created, updated)
def test_basic_update(self, test_data): """ @feature: Permissions @test: try to update entity first with relevant permissionn @assert: entity is removed """ entity = test_data() created = ApiCrud.record_create_recursive(entity) created = test_data._meta.change_for_update(created) user_definition = User() user_created = ApiCrud.record_create_recursive(user_definition) # user doesn't yet have relevant permission, action should fail with self.assertRaises(Exception): ApiCrud.record_update(created, user_definition) perm = ApiCrud.record_resolve( test_data._meta.api_class.permissions.update ) add_permission_to_user(user_created, perm) # user should have the relevant permission, action should updated = ApiCrud.record_update(created, user_definition) del created["updated_at"] del updated["updated_at"] self.assertIntersects(created, updated)
def test_search_key_1(self, test_data): """ @feature: Organizations @test: Create organization and search/find it @assert: organization can be found """ ApiCrud.record_create(test_data) org_res = ApiCrud.record_resolve(test_data) self.assertEqual(org_res.name, test_data.name)
def test_info_key_1(self, test_data): """ @feature: Organizations @test: Create single organization and get its info @assert: specific information for organization matches the creation values """ org = ApiCrud.record_create(test_data) org_res = ApiCrud.record_resolve(org) self.assertEqual(org_res.name, test_data.name)
def test_search_key_1(self, test_data): """ @feature: Organizations @test: Create organization and search/find it @assert: organization can be found @BZ: 1072905 """ ApiCrud.record_create(test_data) org_res = ApiCrud.record_resolve(test_data) self.assertEqual(org_res.name, test_data.name)
def test_basic_read(self, test_data): """ @feature: Permissions @test: try to read entity first with relevant permissionn @assert: entity is created """ entity = test_data() created = ApiCrud.record_create_recursive(entity) user_definition = User() user_created = ApiCrud.record_create_recursive(user_definition) # user doesn't yet have relevant permission, action should fail with self.assertRaises(Exception): ApiCrud.record_resolve(created, user_definition) perm = ApiCrud.record_resolve(test_data._meta.api_class.permissions.resolve) add_permission_to_user(user_created, perm) # user should have the relevant permission, action should work eres = ApiCrud.record_resolve(created, user_definition) self.assertIntersects(eres, created)
def test_positive_sync_1(self, test_data): """ @feature: CustomYumRepo @test: Create and sync repo @assert: repo should have more than 0 packages """ result = ApiCrud.record_create_recursive(test_data) self.assertEqual({}, result.content_counts) task = result._meta.api_class.synchronize(result) task.poll(5, 100) self.assertEqual('success', task.result()) resolved = ApiCrud.record_resolve(result) self.assertGreater(resolved.content_counts['rpm'], 0)
def test_positive_sync_1(self, test_data): """ @feature: CustomYumRepo @test: Create and sync repo @assert: repo should have more than 0 packages """ result = ApiCrud.record_create_recursive(test_data) self.assertEqual({}, result.content_counts) task = result._meta.api_class.synchronize(result) task.poll(5, 100) self.assertEqual('success', task.result()) resolved = ApiCrud.record_resolve(result) self.assertGreater(resolved.content_counts['rpm'], 0)
def test_basic_read(self, test_data): """ @feature: Permissions @test: try to read entity first with relevant permissionn @assert: entity is created """ entity = test_data() created = ApiCrud.record_create_recursive(entity) user_definition = User() user_created = ApiCrud.record_create_recursive(user_definition) # user doesn't yet have relevant permission, action should fail with self.assertRaises(Exception): ApiCrud.record_resolve(created, user_definition) perm = ApiCrud.record_resolve( test_data._meta.api_class.permissions.resolve) add_permission_to_user(user_created, perm) # user should have the relevant permission, action should work eres = ApiCrud.record_resolve(created, user_definition) self.assertIntersects(eres, created)
def test_host_collections(self, test_data): """ @test: Verify, that you can add host collections @feature: ActivationKey @assert: there was no system group and you have added one """ acc = ApiCrud.record_create(test_data) self.assertEqual(len(acc.host_collections), 0) sg = HostCollectionDefOrg() sgc = ApiCrud.record_create(sg) r = acc._meta.api_class.add_host_collection(acc, [sgc.id]) self.assertTrue(r.ok) acr = ApiCrud.record_resolve(acc) self.assertEqual(len(acr.host_collections), 1)
def test_cv_promote_badenvironment_negative(self): """ @test: attempt to promote a content view using an invalid environment @feature: Content Views @assert: Content views cannot be promoted; handled gracefully """ con_view = ApiCrud.record_create_recursive(ContentViewDefinition()) self.assertIntersects(data, con_view) task = con_view._meta.api_class.publish(con_view) task.poll(5, 100) # poll every 5th second, max of 100 seconds self.assertEqual('success', task.result()) published = ApiCrud.record_resolve(con_view) task = published._meta.api_class.promote( published.versions[0]['id'], -1 ) self.assertIn( 'errors', task.json, "Shouldn't be promoted to invalid env")
def test_cv_promote_badenvironment_negative(self): """ @test: attempt to promote a content view using an invalid environment @feature: Content Views @assert: Content views cannot be promoted; handled gracefully """ con_view = ApiCrud.record_create_recursive(ContentViewDefinition()) self.assertIntersects(data, con_view) task = con_view._meta.api_class.publish(con_view) task.poll(5, 100) # poll every 5th second, max of 100 seconds self.assertEqual('success', task.result()) published = ApiCrud.record_resolve(con_view) task = published._meta.api_class.promote( published.versions[0]['id'], -1 ) self.assertIn( 'errors', task.json, "Shouldn't be promoted to invalid env")
def test_cv_promote_custom_content(self): """ @test: attempt to promote a content view containing custom content @feature: Content Views @setup: Multiple environments for an org; custom content synced @assert: Content view can be promoted """ con_view = ApiCrud.record_create_recursive(ContentViewDefinition()) self.assertIntersects(data, con_view) task = con_view._meta.api_class.publish(con_view) task.poll(5, 100) # poll every 5th second, max of 100 seconds self.assertEqual('success', task.result()) published = ApiCrud.record_resolve(con_view) env = EnvironmentKatello(organization=published.organization) created_env = ApiCrud.record_create_recursive(env) task2 = published._meta.api_class.promote( published.versions[0]['id'], created_env.id ) task2.poll(5, 100) # poll every 5th second, max of 100 seconds self.assertEqual('success', task2.result())
def test_cv_promote_custom_content(self): """ @test: attempt to promote a content view containing custom content @feature: Content Views @setup: Multiple environments for an org; custom content synced @assert: Content view can be promoted """ con_view = ApiCrud.record_create_recursive(ContentViewDefinition()) self.assertIntersects(data, con_view) task = con_view._meta.api_class.publish(con_view) task.poll(5, 100) # poll every 5th second, max of 100 seconds self.assertEqual('success', task.result()) published = ApiCrud.record_resolve(con_view) env = EnvironmentKatello(organization=published.organization) created_env = ApiCrud.record_create_recursive(env) task2 = published._meta.api_class.promote( published.versions[0]['id'], created_env.id ) task2.poll(5, 100) # poll every 5th second, max of 100 seconds self.assertEqual('success', task2.result())