mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-14 17:40:27 +00:00
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
|
|
||
|
|
||
|
class IntegrationApiManagement(object):
|
||
|
|
||
|
def get_account(self, account_name, status_code=200):
|
||
|
res = self.client.get(
|
||
|
"/api/v1/pdnsadmin/accounts/{}".format(account_name),
|
||
|
headers=self.basic_auth_admin_headers,
|
||
|
content_type="application/json",
|
||
|
)
|
||
|
if isinstance(status_code, (tuple, list)):
|
||
|
assert res.status_code in status_code
|
||
|
elif status_code:
|
||
|
assert res.status_code == status_code
|
||
|
if res.status_code == 200:
|
||
|
data = res.get_json(force=True)
|
||
|
assert len(data) == 1
|
||
|
return data[0]
|
||
|
return None
|
||
|
|
||
|
def check_account(self, cmpdata, data=None):
|
||
|
data = self.get_account(cmpdata["name"])
|
||
|
for key, value in cmpdata.items():
|
||
|
assert data[key] == value
|
||
|
return data
|
||
|
|
||
|
def get_user(self, username, status_code=200):
|
||
|
res = self.client.get(
|
||
|
"/api/v1/pdnsadmin/users/{}".format(username),
|
||
|
headers=self.basic_auth_admin_headers,
|
||
|
content_type="application/json",
|
||
|
)
|
||
|
if isinstance(status_code, (tuple, list)):
|
||
|
assert res.status_code in status_code
|
||
|
elif status_code:
|
||
|
assert res.status_code == status_code
|
||
|
assert res.status_code == status_code
|
||
|
if status_code == 200:
|
||
|
data = res.get_json(force=True)
|
||
|
assert len(data) == 1
|
||
|
return data[0]
|
||
|
return None
|
||
|
|
||
|
def check_user(self, cmpdata, data=None):
|
||
|
if data is None:
|
||
|
data = self.get_user(cmpdata["username"])
|
||
|
for key, value in data.items():
|
||
|
if key in ('username', 'firstname', 'lastname', 'email'):
|
||
|
assert cmpdata[key] == value
|
||
|
elif key == 'role':
|
||
|
assert data[key]['name'] == cmpdata['role_name']
|
||
|
else:
|
||
|
assert key in ("id",)
|
||
|
return data
|