60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
|
import time
|
||
|
|
||
|
from flask import Flask
|
||
|
|
||
|
from fittrackee.oauth2.clean import clean_tokens
|
||
|
from fittrackee.oauth2.models import OAuth2Token
|
||
|
from fittrackee.users.models import User
|
||
|
|
||
|
from ..mixins import OAuth2Mixin
|
||
|
|
||
|
|
||
|
class TestOAuth2CleanTokens(OAuth2Mixin):
|
||
|
def test_it_does_not_delete_not_expired_token(
|
||
|
self, app: Flask, user_1: User
|
||
|
) -> None:
|
||
|
oauth_client = self.create_oauth_client(user_1)
|
||
|
self.create_oauth2_token(oauth_client)
|
||
|
|
||
|
clean_tokens(days=1)
|
||
|
|
||
|
assert OAuth2Token.query.count() == 1
|
||
|
|
||
|
def test_it_deletes_expired_token(self, app: Flask, user_1: User) -> None:
|
||
|
oauth_client = self.create_oauth_client(user_1)
|
||
|
expires_in = 864000 # 10 days
|
||
|
days = 5
|
||
|
self.create_oauth2_token(
|
||
|
oauth_client,
|
||
|
issued_at=int(time.time()) - expires_in - (days * 86400) - 1,
|
||
|
expires_in=expires_in,
|
||
|
)
|
||
|
|
||
|
clean_tokens(days=days)
|
||
|
|
||
|
assert OAuth2Token.query.count() == 0
|
||
|
|
||
|
def test_it_returns_deleted_rows_count(
|
||
|
self, app: Flask, user_1: User
|
||
|
) -> None:
|
||
|
oauth_client = self.create_oauth_client(user_1)
|
||
|
expires_in = 86400 # 10 days
|
||
|
days = 5
|
||
|
expected_deleted_rows = 3
|
||
|
for _ in range(expected_deleted_rows):
|
||
|
self.create_oauth2_token(
|
||
|
oauth_client,
|
||
|
issued_at=(int(time.time()) - expires_in - (days * 86400) - 1),
|
||
|
expires_in=expires_in,
|
||
|
)
|
||
|
self.create_oauth2_token(oauth_client)
|
||
|
self.create_oauth2_token(
|
||
|
oauth_client,
|
||
|
issued_at=(int(time.time()) - expires_in - (days * 86400)),
|
||
|
expires_in=expires_in,
|
||
|
)
|
||
|
|
||
|
result = clean_tokens(days=days)
|
||
|
|
||
|
assert result == expected_deleted_rows
|