Spaces:
Sleeping
Sleeping
| import pytest | |
| from app.services.token_automation import run_token_maintenance | |
| from app.services.token_dao import TokenDAO | |
| from app.utils.token_pool import ZAITokenValidator | |
| async def test_run_token_maintenance_deletes_invalid_tokens_after_validation( | |
| tmp_path, | |
| monkeypatch, | |
| ): | |
| dao = TokenDAO(str(tmp_path / "tokens.db")) | |
| await dao.init_database() | |
| await dao.add_token("zai", "token-valid", validate=False) | |
| await dao.add_token("zai", "token-guest", validate=False) | |
| await dao.add_token("zai", "token-invalid", validate=False) | |
| async def fake_validate_token(cls, token): | |
| mapping = { | |
| "token-valid": ("user", True, None), | |
| "token-guest": ("guest", False, "guest token"), | |
| "token-invalid": ("unknown", False, "token expired"), | |
| } | |
| return mapping[token] | |
| monkeypatch.setattr( | |
| ZAITokenValidator, | |
| "validate_token", | |
| classmethod(fake_validate_token), | |
| ) | |
| summary = await run_token_maintenance( | |
| provider="zai", | |
| remove_duplicates=False, | |
| run_health_check=False, | |
| delete_invalid_tokens=True, | |
| dao=dao, | |
| pool=None, | |
| ) | |
| assert summary.checked_count == 3 | |
| assert summary.valid_count == 1 | |
| assert summary.guest_count == 1 | |
| assert summary.invalid_count == 1 | |
| assert summary.deleted_invalid_count == 2 | |
| remaining_tokens = await dao.get_tokens_by_provider("zai", enabled_only=False) | |
| assert [token["token"] for token in remaining_tokens] == ["token-valid"] | |
| assert remaining_tokens[0]["token_type"] == "user" | |