def METHOD_NAME(self):
    user = "!#Q#AEQ@#$%&^*((^&*~~~````["
    password = "abcd"
    roles = ["read-write"]
    try:
        self.client.admin_create_user(user, password, roles)
        time.sleep(1)
    except e.UserExistsError:
        pass
    roles = ["read"]
    status = self.client.admin_grant_roles(user, roles)
    time.sleep(2)
    assert status == 0
    user_details = self.client.admin_query_user(user)
    assert set(user_details) == set(["read", "read-write"])
    self.client.admin_drop_user(user)