def setUp(self): self.apiclient = self.testClient.getApiClient() self.dbclient = self.testClient.getDbConnection() self.testdata = TestData().testdata feature_enabled = self.apiclient.listCapabilities(listCapabilities.listCapabilitiesCmd()).dynamicrolesenabled if not feature_enabled: self.skipTest("Dynamic Role-Based API checker not enabled, skipping test") self.testdata["role"]["name"] += self.getRandomString() self.role = Role.create( self.apiclient, self.testdata["role"] ) self.testdata["rolepermission"]["roleid"] = self.role.id self.rolepermission = RolePermission.create( self.apiclient, self.testdata["rolepermission"] ) self.account = Account.create( self.apiclient, self.testdata["account"], roleid=self.role.id ) self.cleanup = [ self.account, self.rolepermission, self.role ]
def test_role_lifecycle_create(self): """ Tests normal lifecycle operations for roles """ # Reuse self.role created in setUp() try: role = Role.create( self.apiclient, self.testdata["role"] ) self.fail("An exception was expected when creating duplicate roles") except CloudstackAPIException: pass list_roles = Role.list(self.apiclient, id=self.role.id) self.assertEqual( isinstance(list_roles, list), True, "List Roles response was not a valid list" ) self.assertEqual( len(list_roles), 1, "List Roles response size was not 1" ) self.assertEqual( list_roles[0].name, self.testdata["role"]["name"], msg="Role name does not match the test data" ) self.assertEqual( list_roles[0].type, self.testdata["role"]["type"], msg="Role type does not match the test data" )
def test_role_lifecycle_clone(self): """ Tests create role from existing role """ # Use self.role created in setUp() role_to_be_cloned = { "name": "MarvinFake Clone Role ", "roleid": self.role.id, "description": "Fake Role cloned by Marvin test" } try: role_cloned = Role.create(self.apiclient, role_to_be_cloned) self.cleanup.append(role_cloned) except CloudstackAPIException as e: self.fail("Failed to create the role: %s" % e) list_role_cloned = Role.list(self.apiclient, id=role_cloned.id) self.assertEqual(isinstance(list_role_cloned, list), True, "List Roles response was not a valid list") self.assertEqual(len(list_role_cloned), 1, "List Roles response size was not 1") self.assertEqual(list_role_cloned[0].name, role_to_be_cloned["name"], msg="Role name does not match the test data") self.assertEqual(list_role_cloned[0].type, self.testdata["role"]["type"], msg="Role type does not match the test data") list_rolepermissions = RolePermission.list(self.apiclient, roleid=self.role.id) self.validate_permissions_list(list_rolepermissions, role_cloned.id)