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_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_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)) }
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_authenticate_invalid_user_id(self): obj = UserAuthenticator.authenticate( 'test123:123:5570b1b049c7207a09fd22f587ed7019f8c50453') 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_auth_data(self): obj = UserAuthenticator.authenticate('test123:broken') assert obj is 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 setup(self): self.user = User.objects.create(username='******') self.authed_instance = UserAuthenticator('test123', self.user) self.unauthed_instance = UserAuthenticator('test123', None)
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