Exemple #1
0
    def __init__(self, *args, **kwargs):
        super(Request, self).__init__()
        self._method = kwargs.pop('method', None)
        self._url = kwargs.pop('url', None)
        self._args = kwargs.pop('args', {})

        for key in kwargs.keys():
            add_property(self, key, kwargs[key])
Exemple #2
0
def test_attribute_error_for_added_property():
    request = Request()
    add_property(request, "token", None)

    assert "_token" in request.__dict__.keys()
    with pytest.raises(AttributeError):
        request.token = "test_token"
        assert request.token is None
Exemple #3
0
def test_attribute_error_for_added_property():
    request = Request()
    add_property(request, 'token', None)

    assert '_token' in request.__dict__.keys()
    with pytest.raises(AttributeError):
        request.token = "test_token"
        assert request.token is None
Exemple #4
0
    def __init__(self, *args, **kwargs):
        super(Request, self).__init__()
        self._method = kwargs.pop('method', None)
        self._url = kwargs.pop('url', None)
        self._args = kwargs.pop('args', {})
        self._data = kwargs.pop('data', None)
        self._event_name = kwargs.pop('event_name', None)

        for key in kwargs.keys():
            add_property(self, key, kwargs[key])
Exemple #5
0
    def test_authenticate(self):
        class TestView(MethodBasedView):
            auth_required = True

        user = User(is_user=True)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)

        request = Request()
        add_property(request, 'user', user)
        add_property(request, 'token', raw_token)
        view = TestView()
        self.assertIsNone(self.middleware.authenticate(request, view))
Exemple #6
0
    def test_authenticate(self):
        class TestView(MethodBasedView):
            auth_required = True

        user = User(is_user=True)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)

        request = Request()
        add_property(request, 'user', user)
        add_property(request, 'token', raw_token)
        view = TestView()
        self.assertIsNone(self.middleware.authenticate(request, view))
Exemple #7
0
    def test_authenticate_with_permissions(self):
        class ViewWithIsAuthenticatedPermission(MethodBasedView):
            auth_required = True
            permission_classes = (IsAuthenticated, )

        user = User(is_user=True)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)

        request = Request()
        add_property(request, 'user', user)
        add_property(request, 'token', raw_token)
        view = ViewWithIsAuthenticatedPermission()
        self.assertIsNone(self.middleware.authenticate(request, view))
Exemple #8
0
    def test_authenticate_with_permissions(self):
        class ViewWithIsAuthenticatedPermission(MethodBasedView):
            auth_required = True
            permission_classes = (IsAuthenticated, )

        user = User(is_user=True)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)

        request = Request()
        add_property(request, 'user', user)
        add_property(request, 'token', raw_token)
        view = ViewWithIsAuthenticatedPermission()
        self.assertIsNone(self.middleware.authenticate(request, view))
Exemple #9
0
    def test_init_credentials(self):
        user = self._create_simple_user(self.middleware.user_model)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)
        init_data = {'name': 'api', 'token': raw_token, 'user_id': user.id}
        self.middleware.storage_backend.save(init_data['name'],
                                             init_data['token'],
                                             user_id=init_data['user_id'])

        request = Request()
        add_property(request, 'token', raw_token)
        self.middleware.init_credentials(request)
        self.assertIsInstance(request.user, User)
        self.assertTrue(request.user.is_user)
        self.assertIsNotNone(request.token_payload)
Exemple #10
0
    def init_credentials(self, request):
        """Getting credentials (user, keys, tokens) from database/cache/etc.

        :param request: instance of Request class.
        """
        token = getattr(request, 'token', None)

        if token:
            token_payload = self.manager.verify(token)
            user = self.get_user_by_token(token)
        else:
            token_payload = None
            user = User()

        add_property(request, 'user', user)
        add_property(request, 'token_payload', token_payload)
Exemple #11
0
    def init_credentials(self, request):
        """
        Getting credentials (user, keys, tokens) from database/cache/etc.

        :param request: instance of Request class.
        """
        token = getattr(request, 'token', None)

        if token:
            token_payload = self.manager.verify(token)
            user = self.get_user_by_token(token)
        else:
            token_payload = None
            user = User()

        add_property(request, 'user', user)
        add_property(request, 'token_payload', token_payload)
Exemple #12
0
    def test_authenticate_with_permissions_and_raise_exception(self):
        class CustomPermission(AbstractPermission):
            @staticmethod
            def check(request, handler):
                raise PermissionDeniedException

        class ViewWithPermissions(MethodBasedView):
            auth_required = True
            permission_classes = (CustomPermission, )

        user = User(is_user=True)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)

        request = Request()
        add_property(request, 'user', user)
        add_property(request, 'token', raw_token)
        view = ViewWithPermissions()
        self.assertRaises(PermissionDeniedException,
                          self.middleware.authenticate, request, view)
Exemple #13
0
    def test_init_credentials(self):
        user = self._create_simple_user(self.middleware.user_model)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)
        init_data = {
            'name': 'api',
            'token': raw_token,
            'user_id': user.id
        }
        self.middleware.storage_backend.save(
            init_data['name'],
            init_data['token'],
            user_id=init_data['user_id']
        )

        request = Request()
        add_property(request, 'token', raw_token)
        self.middleware.init_credentials(request)
        self.assertIsInstance(request.user, User)
        self.assertTrue(request.user.is_user)
        self.assertIsNotNone(request.token_payload)
Exemple #14
0
    def test_authenticate_with_permissions_and_raise_exception(self):
        class CustomPermission(AbstractPermission):
            @staticmethod
            def check(request, handler):
                raise PermissionDeniedException

        class ViewWithPermissions(MethodBasedView):
            auth_required = True
            permission_classes = (CustomPermission, )

        user = User(is_user=True)
        token_data = {'key': 'value'}
        raw_token = self.middleware.manager.generate(token_data)

        request = Request()
        add_property(request, 'user', user)
        add_property(request, 'token', raw_token)
        view = ViewWithPermissions()
        self.assertRaises(
            PermissionDeniedException,
            self.middleware.authenticate, request, view
        )
Exemple #15
0
def test_add_property():
    request = Request()
    add_property(request, "token", None)

    assert "_token" in request.__dict__.keys()
    assert request.token is None
Exemple #16
0
def test_add_property():
    request = Request()
    add_property(request, 'token', None)

    assert '_token' in request.__dict__.keys()
    assert request.token is None