def test_token_expired(): """ Test if token is refused when expired """ database_client_instance = MemoryDatabaseClient() date_time_provider_instance = FakeDateTimeProvider() provider = AuthenticationProvider(date_time_provider_instance) user = "******" permanent_token = provider.create_token(database_client_instance, user, None, None) valid_token = provider.create_token(database_client_instance, user, None, datetime.timedelta(days=1)) expired_token = provider.create_token(database_client_instance, user, None, datetime.timedelta(days=-1)) assert provider.authenticate_with_token(database_client_instance, user, permanent_token["secret"]) is True assert provider.authenticate_with_token(database_client_instance, user, valid_token["secret"]) is True assert provider.authenticate_with_token(database_client_instance, user, expired_token["secret"]) is False
def test_token_success(): """ Test token operations succeed in a normal situation """ database_client_instance = MemoryDatabaseClient() date_time_provider_instance = FakeDateTimeProvider() provider = AuthenticationProvider(date_time_provider_instance) user = "******" wrong_secret = secrets.token_hex(provider.token_size) assert provider.count_tokens(database_client_instance, user) == 0 assert provider.authenticate_with_token(database_client_instance, user, wrong_secret) is False first_token = provider.create_token(database_client_instance, user, None, None) assert provider.count_tokens(database_client_instance, user) == 1 assert provider.authenticate_with_token(database_client_instance, user, first_token["secret"]) is True assert provider.authenticate_with_token(database_client_instance, user, wrong_secret) is False second_token = provider.create_token(database_client_instance, user, None, None) assert provider.count_tokens(database_client_instance, user) == 2 assert provider.authenticate_with_token(database_client_instance, user, first_token["secret"]) is True assert provider.authenticate_with_token(database_client_instance, user, second_token["secret"]) is True assert provider.authenticate_with_token(database_client_instance, user, wrong_secret) is False provider.delete_token(database_client_instance, user, first_token["identifier"]) assert provider.count_tokens(database_client_instance, user) == 1 assert provider.authenticate_with_token(database_client_instance, user, first_token["secret"]) is False assert provider.authenticate_with_token(database_client_instance, user, second_token["secret"]) is True assert provider.authenticate_with_token(database_client_instance, user, wrong_secret) is False