Exemple #1
0
    def test_authenticate_inactive_user(self):
        self.user.is_active = False
        self.user.save()

        obj = UserAuthenticator.authenticate('test123:{0}:{1}'.format(
            self.user.pk, UserAuthenticator.get_auth_token(self.user.pk)))

        assert obj is None
Exemple #2
0
    def test_validate_auth_token(self, settings):
        settings.SECRET_KEY = 'test123key'
        assert UserAuthenticator.validate_auth_token(
            123, '5570b1b049c7207a09fd22f587ed7019f8c50453') is True

        assert UserAuthenticator.validate_auth_token(
            456, '5570b1b049c7207a09fd22f587ed7019f8c50453') is False

        assert UserAuthenticator.validate_auth_token(
            123, '5570b1b049c7207a09fd22f587ed7019f8c50454') is False
Exemple #3
0
    def test_get_auth_token(self, settings):
        settings.SECRET_KEY = 'test123key'
        token = UserAuthenticator.get_auth_token(123)
        assert token == '5570b1b049c7207a09fd22f587ed7019f8c50453'

        other_user_idtoken = UserAuthenticator.get_auth_token(456)
        assert token != other_user_idtoken

        settings.SECRET_KEY = 'test123key456'
        other_secret_key_token = UserAuthenticator.get_auth_token(123)
        assert other_secret_key_token != token
def test_context_processor_user(rf):
    request = rf.get('/')
    request.user = User.objects.create(username='******')

    context = omnibus(request)

    assert context == {
        'OMNIBUS_ENDPOINT': 'ws://testserver:4242/ec',
        'OMNIBUS_AUTH_TOKEN': '{0}:{1}'.format(
            request.user.pk, UserAuthenticator.get_auth_token(request.user.pk))
    }
Exemple #5
0
    def test_authenticate_user(self):
        obj = UserAuthenticator.authenticate('test123:{0}:{1}'.format(
            self.user.pk, UserAuthenticator.get_auth_token(self.user.pk)))

        assert obj.identifier == 'test123'
        assert obj.user == self.user
Exemple #6
0
 def test_authenticate_invalid_user_id(self):
     obj = UserAuthenticator.authenticate(
         'test123:123:5570b1b049c7207a09fd22f587ed7019f8c50453')
     assert obj is None
Exemple #7
0
 def test_authenticate_invalid_auth_token(self):
     obj = UserAuthenticator.authenticate('test123:123:invalidbrokentoken')
     assert obj is None
Exemple #8
0
 def test_authenticate_invalid_auth_data(self):
     obj = UserAuthenticator.authenticate('test123:broken')
     assert obj is None
Exemple #9
0
    def test_authenticate_no_user(self):
        obj = UserAuthenticator.authenticate('test123')

        assert isinstance(obj, UserAuthenticator) is True
        assert obj.identifier == 'test123'
        assert obj.user is None
Exemple #10
0
 def setup(self):
     self.user = User.objects.create(username='******')
     self.authed_instance = UserAuthenticator('test123', self.user)
     self.unauthed_instance = UserAuthenticator('test123', None)
Exemple #11
0
class TestUserAuthenticator:
    def setup(self):
        self.user = User.objects.create(username='******')
        self.authed_instance = UserAuthenticator('test123', self.user)
        self.unauthed_instance = UserAuthenticator('test123', None)

    def test_authenticate_no_user(self):
        obj = UserAuthenticator.authenticate('test123')

        assert isinstance(obj, UserAuthenticator) is True
        assert obj.identifier == 'test123'
        assert obj.user is None

    def test_authenticate_invalid_auth_data(self):
        obj = UserAuthenticator.authenticate('test123:broken')
        assert obj is None

    def test_authenticate_invalid_auth_token(self):
        obj = UserAuthenticator.authenticate('test123:123:invalidbrokentoken')
        assert obj is None

    def test_authenticate_invalid_user_id(self):
        obj = UserAuthenticator.authenticate(
            'test123:123:5570b1b049c7207a09fd22f587ed7019f8c50453')
        assert obj is None

    def test_authenticate_inactive_user(self):
        self.user.is_active = False
        self.user.save()

        obj = UserAuthenticator.authenticate('test123:{0}:{1}'.format(
            self.user.pk, UserAuthenticator.get_auth_token(self.user.pk)))

        assert obj is None

    def test_authenticate_user(self):
        obj = UserAuthenticator.authenticate('test123:{0}:{1}'.format(
            self.user.pk, UserAuthenticator.get_auth_token(self.user.pk)))

        assert obj.identifier == 'test123'
        assert obj.user == self.user

    def test_get_auth_token(self, settings):
        settings.SECRET_KEY = 'test123key'
        token = UserAuthenticator.get_auth_token(123)
        assert token == '5570b1b049c7207a09fd22f587ed7019f8c50453'

        other_user_idtoken = UserAuthenticator.get_auth_token(456)
        assert token != other_user_idtoken

        settings.SECRET_KEY = 'test123key456'
        other_secret_key_token = UserAuthenticator.get_auth_token(123)
        assert other_secret_key_token != token

    def test_validate_auth_token(self, settings):
        settings.SECRET_KEY = 'test123key'
        assert UserAuthenticator.validate_auth_token(
            123, '5570b1b049c7207a09fd22f587ed7019f8c50453') is True

        assert UserAuthenticator.validate_auth_token(
            456, '5570b1b049c7207a09fd22f587ed7019f8c50453') is False

        assert UserAuthenticator.validate_auth_token(
            123, '5570b1b049c7207a09fd22f587ed7019f8c50454') is False

    def test_get_identifier(self):
        assert self.authed_instance.get_identifier() == 'test123'
        assert self.unauthed_instance.get_identifier() == 'test123'

    def test_can_subscribe(self):
        assert self.authed_instance.can_subscribe('anychannel') is True
        assert self.unauthed_instance.can_subscribe('anychannel') is False

    def test_can_unsubscribe(self):
        assert self.authed_instance.can_unsubscribe('anychannel') is True
        assert self.unauthed_instance.can_unsubscribe('anychannel') is False

    def test_can_publish(self):
        # Normal users and unauthed
        assert self.authed_instance.can_publish('anychannel') is False
        assert self.unauthed_instance.can_publish('anychannel') is False

        # Now as staff user
        self.user.is_staff = True
        assert self.authed_instance.can_publish('anychannel') is True