def test_create_get_update_rename_delete_account(self): name = 'test-{}@zimbratest.example.com'.format( random.randint(0, 10**9)) password = '******' ac_req = Account(name=name) with self.assertRaises(ZimbraSoapServerError): self.zc.get_account(ac_req) # CREATE ac = self.zc.create_account(name, password) self.assertIsInstance(ac, Account) self.assertEqual(ac.name, name) # GET ac_got = self.zc.get_account(ac_req) self.assertIsInstance(ac_got, Account) self.assertEqual(ac_got.name, name) # UPDATE random_name_1 = 'test-{}'.format(random.randint(0, 10**9)) self.zc.modify_account(ac_got, {'displayName': random_name_1}) ac_got = self.zc.get_account(ac_req) self.assertEqual(ac_got['displayName'], random_name_1) # MODIFY PASSWORD new_password = '******' self.zc.set_password(ac, new_password) act_zc = ZimbraAccountClient(TEST_CONF['host'], TEST_CONF['https_port']) try: act_zc.login(ac.name, new_password) except ZimbraSoapServerError: self.fail('self.zc.set_password has failed to change password') # RENAME self.zc.rename_account( ac_got, '*****@*****.**') renamed_ac_got = self.zc.get_account( Account(name='*****@*****.**')) self.assertEqual(renamed_ac_got['mail'], '*****@*****.**') # DELETE self.zc.delete_account(renamed_ac_got) with self.assertRaises(ZimbraSoapServerError): self.zc.get_account(ac)