def delete(self, email): url = '/api2/accounts/{}/'.format(email) result = self.client.delete(url, expected=[200, 202]) if result.status_code == 200: return True elif result.status_code == 202: raise DoesNotExist('User {}'.format(email))
def wrapped(*args, **kwargs): try: return func(*args, **kwargs) except ClientHttpError as e: if e.code == 404: raise DoesNotExist(msg) else: raise
def update_user(self, email, **kwargs): """Update a user account. Any of the following keys must be provided: - password, is_staff, is_active, name, note, storage.""" url = '/api2/accounts/{}/'.format(email) params = {} attrs = ['password', 'is_active', 'is_staff', 'name', 'note', 'storage'] for attr in attrs: if attr in kwargs: val = kwargs.pop(attr) if val is not None: params[attr] = val result = self.client.put(url, data=params, expected=[200, 201, 400]) if result.status_code == 400: raise DoesNotExist('User {}'.format(email)) return True
def rename_group(self, group_name, group_newname): ''' Rename this group :param group_name: Existing group name :param group_newname: New group name :return: [Group] ''' group = self.get_group(group_name) if not group: raise DoesNotExist(group_name) url = '/api2/groups/{group_id}/'.format(group_id=group.group_id) params = {'operation': 'rename', 'newname': group_newname} resp_str = self.client.post(url, data=params, expected=[200]) group.group_name = group_newname # Patch local object return group