def test_correct_setters():
    account_main = AccountMain()

    account_session = AccountSession()
    account_session.account_main = account_main

    assert account_session.account_main is account_main
Esempio n. 2
0
    async def wrapper(request, *args, **kwargs):
        if not request.headers.get('auth-token'):
            return ErrorEnum.FORBIDDEN.get_response_with_error()

        session_id = AccountSession.get_session_id_from_token(
            request.headers.get('auth-token'))
        if not session_id:
            return ErrorEnum.INVALID_OR_OUTDATED_TOKEN.get_response_with_error(
            )

        account_main, err = await AuthService.get_account_main_by_session_id(
            session_id)
        if err:
            return err.get_response_with_error()

        if not account_main:
            return ErrorEnum.INVALID_OR_OUTDATED_TOKEN.get_response_with_error(
            )

        response = func(request,
                        *args,
                        auth_account_main_id=account_main.id,
                        **kwargs)
        if isawaitable(response):
            response = await response
        return response
    async def auth_basic(account_main: AccountMain) -> Tuple[Optional[AccountMain], Optional[Error]]:
        account_main.create_hash_password()
        account_main, err = await AccountMainDao().get_by_email_hash_password(account_main)
        if err:
            return None, err

        if not account_main:
            return None, ErrorEnum.WRONG_EMAIL_PASSWORD

        account_session = AccountSession(account_main=account_main)
        account_session, err = await AccountSessionDao().add(account_session)
        if err:
            return None, err

        account_main.auth_token = account_session.create_token()

        return account_main, None
    async def register(account_main: AccountMain) -> Tuple[Optional[AccountMain], Optional[Error]]:
        account_main.create_hash_password()
        account_main, err = await AccountMainDao().add(account_main)
        if err:
            return None, err

        account_session = AccountSession(account_main=account_main)
        account_session, err = await AccountSessionDao().add(account_session)
        if err:
            return None, err

        account_main.auth_token = account_session.create_token()

        auth_code = AuthCode(account_main=account_main)
        auth_code.create_random_code()

        _, err = await AuthCodeDao().add(auth_code)

        account_main.is_email_sent = Mail.send_email(EMAIL_CODE_TYPE, account_main.email, auth_code.code)

        return account_main, None
Esempio n. 5
0
    async def add(
        self, account_session: AccountSession
    ) -> Tuple[Optional[AccountSession], Optional[Error]]:
        async with self.pool.acquire() as conn:
            session_id = await conn.fetchval(
                """
                    INSERT INTO account_session(account_main_id) VALUES ($1)
                    RETURNING id;
                """, account_session.account_main.id)

            account_session.id = session_id
            return account_session, None
def test_empty_init():
    account_session = AccountSession()

    assert account_session.account_main is None
def test_incorrect_setters():
    account_session = AccountSession()

    with pytest.raises(TypeError):
        account_session.account_main = 1234
def test_incorrect_init():
    with pytest.raises(TypeError):
        AccountSession(account_main=123)
def test_correct_init():
    account_main = AccountMain()

    account_session = AccountSession(account_main=account_main)
    assert account_session.account_main is account_main