Пример #1
0
    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)
Пример #2
0
 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.")
Пример #3
0
 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.")
Пример #4
0
    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)
Пример #5
0
 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)
Пример #6
0
    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.")
Пример #7
0
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,