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_oauth2_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_oauth2_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_oauth2_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