def test_fails_with_bad_token(self): user = User( username='******', password='******', salt='salt', ).save() with pytest.raises(ValidationError): SessionService.create_session(user, 1234)
def attempt_login(cls, username, password): user = UserService.get_user(username) if not user: return None hashed_pass = hash_password(password, user.salt) if hashed_pass != user.password: return None session = SessionService.get_session_by_user(user) if session: return session.token token = gen_token() SessionService.create_session(user, token) return token
def test_returns_none_when_session_does_not_exist(self): User( username='******', password='******', salt='salt', ).save() session = SessionService.get_session_by_token('token') assert session is None
def test_fails_silently_when_session_does_not_exist(self): user = User( username='******', password='******', salt='salt', ).save() result = SessionService.delete_session_by_user(user) assert result is False with pytest.raises(Session.DoesNotExist): Session.objects.get(user=user)
def test_creates_session(self): user = User( username='******', password='******', salt='salt', ).save() result = SessionService.create_session(user, 'token') session = Session.objects.get(user=user) assert result is True assert session.user.username == 'username' assert session.token == 'token'
def test_returns_session_when_session_exists(self): user = User( username='******', password='******', salt='salt', ).save() Session( user=user, token='token', ).save() session = SessionService.get_session_by_token('token') assert session is not None assert session.user.username == 'username' assert session.token == 'token'
def test_deletes_session_when_session_exists(self): user = User( username='******', password='******', salt='salt', ).save() Session( user=user, token='token', ).save() session = Session.objects.get(user=user) assert session is not None result = SessionService.delete_session_by_user(user) assert result is True with pytest.raises(Session.DoesNotExist): Session.objects.get(user=user)
def verify_token(cls, token): session = SessionService.get_session_by_token(token) return True if session else False
def test_fails_silently_when_session_does_not_exist(self): result = SessionService.delete_session_by_token('token') assert result is False with pytest.raises(Session.DoesNotExist): Session.objects.get(token='token')