async def method_post(self, request: Request, body: dict, session, *args, **kwargs) -> BaseHTTPResponse: request_model = RequestAuthUserDto(body) try: db_user = get_user_by_login(session, login=request_model.login) except DBUserNotExists: raise SanicUserNotFound("User not found") try: check_hash(request_model.password, db_user.password) except CheckPasswordHashException: raise SanicPasswordHashException("Wrong password") payload = { "sub": db_user.id, } token = create_token(payload) response = AuthResponseObject(token) response_model = ResponseAuthUserDto(response) return await self.make_response_json( body=response_model.dump(), status=200, )
async def method_post(self, request: Request, body: dict, session, *args, **kwargs) -> BaseHTTPResponse: request_model = RequestAuthEmployeeDto(body) try: db_employee = employee_queries.get_employee( session, login=request_model.login) except DBEmployeeNotExistsException: raise SanicEmployeeNotFound('Employee not found') try: check_hash(request_model.password, db_employee.password) except CheckPasswordHashException: raise SanicPasswordHashException('Wrong password') payload = { 'eid': db_employee.id, } token = create_token(payload) response = AuthResponseObject(token) response_model = ResponseAuthEmployeeDto(response) return await self.make_response_json( body=response_model.dump(), status=200, )
def test_invalid_password_hash(password_data): hsh_ = generate_hash(password_data['password3']) with pytest.raises(CheckPasswordHashException): check_hash(password_data['password'], hsh_)
def test_valid_password_hash(password_data): hsh_ = generate_hash(password_data['password2']) assert check_hash(password_data['password'], hsh_) is None