160 lines
4.0 KiB
Python
160 lines
4.0 KiB
Python
from __future__ import print_function
|
|
|
|
import logging
|
|
|
|
import config as config
|
|
from utils.api import Api
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class TestRolesApi:
|
|
def setup_class(self):
|
|
self.api = Api(config)
|
|
self.api.feat_oas_schema()
|
|
|
|
@classmethod
|
|
def teardown_class(self):
|
|
pass
|
|
|
|
def test_1_init_user_and_role(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username
|
|
}
|
|
|
|
data = {
|
|
"username": config.username,
|
|
"password": config.username,
|
|
"creator": config.username,
|
|
"initial": True,
|
|
}
|
|
|
|
resp = self.api.create_user(headers=headers, data=data)
|
|
|
|
assert resp.status_code == 201, resp.dumps()
|
|
assert resp.json()["message"] == "Created"
|
|
|
|
def test_2_list_roles_without_api_key(self):
|
|
resp = self.api.list_roles()
|
|
|
|
assert resp.status_code == 403, resp.dumps()
|
|
|
|
def test_3_list_roles_without_auth(self):
|
|
headers = {"x-api-key": config.api_key}
|
|
resp = self.api.list_roles(headers=headers)
|
|
|
|
assert resp.status_code == 401, resp.dumps()
|
|
|
|
def test_4_create_role_without_key(self):
|
|
resp = self.api.create_role()
|
|
|
|
assert resp.status_code == 403, resp.dumps()
|
|
|
|
def test_5_create_role_with_bad_creator(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username
|
|
}
|
|
|
|
data = {
|
|
"role_name": "role_name",
|
|
"creator": "bad_creator",
|
|
"permissions": ['train:all', 'checkpoint:all'],
|
|
}
|
|
|
|
resp = self.api.create_role(headers=headers, data=data)
|
|
|
|
assert resp.status_code == 201, resp.dumps()
|
|
|
|
def test_6_list_roles(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username
|
|
}
|
|
|
|
params = {
|
|
'role_params': 'role_name'
|
|
}
|
|
|
|
resp = self.api.list_roles(headers=headers, params=params)
|
|
|
|
assert resp.status_code == 200, resp.dumps()
|
|
roles = resp.json()['data']["roles"]
|
|
assert len(roles) >= 1
|
|
|
|
def test_7_list_roles_without_params(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username
|
|
}
|
|
|
|
params = {
|
|
}
|
|
|
|
resp = self.api.list_roles(headers=headers, params=params)
|
|
|
|
assert resp.status_code == 200, resp.dumps()
|
|
roles = resp.json()['data']["roles"]
|
|
assert len(roles) >= 1
|
|
|
|
def test_8_delete_roles_without_key(self):
|
|
headers = {}
|
|
|
|
data = {
|
|
"bad": ['bad'],
|
|
}
|
|
|
|
resp = self.api.delete_roles(headers=headers, data=data)
|
|
|
|
assert resp.status_code == 403, resp.dumps()
|
|
|
|
def test_9_delete_roles_with_bad_request_body(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
}
|
|
|
|
data = {
|
|
"bad": ['bad'],
|
|
}
|
|
|
|
resp = self.api.delete_roles(headers=headers, data=data)
|
|
|
|
assert 'object has missing required properties' in resp.json()["message"]
|
|
assert 'role_name_list' in resp.json()["message"]
|
|
|
|
def test_10_delete_default_role(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username
|
|
}
|
|
|
|
data = {
|
|
"role_name_list": ['IT Operator'],
|
|
}
|
|
|
|
resp = self.api.delete_roles(headers=headers, data=data)
|
|
|
|
def test_6_create_role_byoc(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username
|
|
}
|
|
|
|
data = {
|
|
"role_name": "byoc",
|
|
"creator": "ESD",
|
|
"permissions": [
|
|
'train:all',
|
|
'checkpoint:all',
|
|
'inference:all',
|
|
'sagemaker_endpoint:all',
|
|
'user:all',
|
|
'role:all',
|
|
],
|
|
}
|
|
|
|
resp = self.api.create_role(headers=headers, data=data)
|
|
|
|
assert resp.status_code == 201, resp.dumps()
|