def request(self, method, uri, *args, with_auth=True, token=None, add_server=True, **kwargs): if 'headers' in kwargs: headers = kwargs.pop('headers') else: headers = {} if with_auth: if not token: if not self.token: self.token = get_token(session=self.session) token = self.token headers.update({'Authorization': token}) super(SuperdeskTestCase, self).request(method, uri, *args, headers=headers, add_server=add_server, **kwargs)
def test_success(self): # add user self.POST( '/HR/User', self.record, headers={'X-Filter': 'User.UserName'}) self.expect_status(201) self.expect_json({ 'UserName': self.record["UserName"], 'href': self.record_href }) # log in with newly created user try: get_token(username=self.record["UserName"], password=self.password), except ApiAuthException: self.fail("Newly created user can't log in.")
def test_password(self): new_password = '******' new_password_hashed = hashlib.sha512(bytes(new_password, 'utf-8')).hexdigest() self.PUT( '/HR/UserPassword/{id}'.format(id=self.record_id), { 'NewPassword': new_password_hashed, 'OldPassword': self.record['Password'] }) self.expect_status(200) # old password shouldn't work with self.assertRaises(ApiAuthException): get_token(username=self.record["UserName"], password=self.password) # new password should work try: get_token(username=self.record["UserName"], password=new_password) except ApiAuthException: self.fail("User can't log in with the new password.")
def test_logout(self): temporary_token = get_token() self.DELETE('/Security/Login/{token}'.format(token=temporary_token), token=temporary_token) self.expect_status(204) self.GET('/HR/User', token=temporary_token) self.expect_status(401) # just in case will check if it wasn't broken other token self.GET('/HR/User') self.expect_status(200)
def __init__(self, file_path, session=None, token=None): try: with open(file_path, 'r') as f: self.fixtures = json.loads(f.read()) except Exception: raise FixturesException("Fixture file can't be loaded") self.generated = {path: [] for path in self.fixtures} if session: self.session = session else: self.session = Session() if token: self.token = token else: self.token = get_token(session=self.session)
def test_already_deleted(self): # add user self.POST( '/HR/User', self.record, headers={'X-Filter': 'User.UserName'}) self.expect_status(201) self.expect_json({ 'UserName': self.record["UserName"], 'href': self.record_href }) # add deleted one self.DELETE(self.record_uri) self.expect_status(204) self.POST('/HR/User', self.record, headers={'X-Filter': 'User.UserName'}) self.expect_status(201) self.expect_json(self.record["UserName"], path="UserName") try: get_token(username=self.record["UserName"], password=self.password), except ApiAuthException: self.fail("Newly created user can't log in.")
import os import inspect from requests import Session from aipom import ApiTestCase from tests.fixtures import Fixtures from tests.auth import get_token from tests.settings import SERVER_URL, PRINT_PAYLOAD, PRINT_URL pwd = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) FIXTURES_PATH = os.path.join(pwd, './fixtures.json') session = Session() token = get_token(session=session) fixtures = Fixtures(FIXTURES_PATH, session=session, token=token) class SuperdeskTestCase(ApiTestCase): session = session token = token maxDiff = None server_url = SERVER_URL.rstrip('/') print_url = PRINT_URL print_payload = PRINT_PAYLOAD def request(self, method,