コード例 #1
0
    async def token(form_data: OAuth2PasswordRequestForm = Depends()):
        username, password = attrgetter("username", "password")(form_data)
        credentials = Credentials(email=username, password=password)

        user = await user_service.get_by_credentials(repo, credentials)
        if not user:
            raise HTTPException(
                status_code=401, detail="invalid authentication credentials",
            )

        at, exp_at = auth.encode_token(
            data={"sub": f"userid:{user.id}", "grant_type": "access"},
            expires_delta=timedelta(minutes=access_expire),
        )

        return Token(access_token=at, expire=exp_at)
コード例 #2
0
ファイル: user_test.py プロジェクト: GArmane/iheroes
        def test_must_be_secret_str(self, credentials_valid_data):
            credentials_valid_data.update({"password": ["some string"]})
            with pytest.raises(ValidationError) as excinfo:
                Credentials(**credentials_valid_data)

            self.assert_validation_error("type_error.str", excinfo)
コード例 #3
0
ファイル: user_test.py プロジェクト: GArmane/iheroes
        def test_is_required(self, credentials_valid_data):
            credentials_valid_data.pop("email")
            with pytest.raises(ValidationError) as excinfo:
                Credentials(**credentials_valid_data)

            self.assert_validation_error("value_error.missing", excinfo)
コード例 #4
0
ファイル: user_test.py プロジェクト: GArmane/iheroes
 def test_immutability(self, credentials_valid_data):
     entity = Credentials(**credentials_valid_data)
     for key in entity.dict().keys():
         with pytest.raises(TypeError):
             setattr(entity, key, "some value")
コード例 #5
0
ファイル: user_test.py プロジェクト: GArmane/iheroes
 def test_invalidation(self, credentials_invalid_data):
     with pytest.raises(ValidationError):
         assert Credentials(**credentials_invalid_data)
コード例 #6
0
ファイル: user_test.py プロジェクト: GArmane/iheroes
 def test_validation(self, credentials_valid_data):
     assert Credentials(**credentials_valid_data)
コード例 #7
0
ファイル: user_test.py プロジェクト: GArmane/iheroes
        def test_max_length_lte_128(self, credentials_valid_data):
            credentials_valid_data.update({"password": "******" * 129})
            with pytest.raises(ValidationError) as excinfo:
                Credentials(**credentials_valid_data)

            self.assert_validation_error("value_error.any_str.max_length", excinfo)