dd8dd9244d
Co-authored-by: multica-agent <github@multica.ai>
69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
import unittest
|
|
from importlib.util import find_spec
|
|
|
|
os.environ.setdefault("DATABASE_URL", "sqlite+pysqlite:///:memory:")
|
|
os.environ.setdefault("MINIO_ENABLED", "false")
|
|
|
|
from api.app import models # noqa: F401
|
|
from api.app.core.celery_app import celery_app
|
|
from api.app.core.database import Base
|
|
from api.app.services.legacy_admin_rbac_service import PROTECTED_MENU_CODES
|
|
|
|
|
|
REMOVED_MODULES = (
|
|
"api.app.api.v1.jwt_generator",
|
|
"api.app.models.calendar_event",
|
|
"api.app.models.requirement",
|
|
"api.app.models.todo",
|
|
"api.app.schemas.calendar_event",
|
|
"api.app.schemas.jwt_generator",
|
|
"api.app.schemas.requirement",
|
|
"api.app.schemas.todo",
|
|
"api.app.services.calendar_event_service",
|
|
"api.app.services.jwt_generator_service",
|
|
"api.app.services.requirement_service",
|
|
"api.app.services.todo_service",
|
|
"api.app.tasks.schedule_tasks",
|
|
)
|
|
|
|
REMOVED_TABLES = {
|
|
"calendar_event",
|
|
"project_requirement",
|
|
"project_requirement_log",
|
|
"requirement_comments",
|
|
"todo",
|
|
}
|
|
|
|
|
|
class LegacyModuleCleanupContractTest(unittest.TestCase):
|
|
def test_removed_modules_are_not_importable(self) -> None:
|
|
for module_name in REMOVED_MODULES:
|
|
self.assertIsNone(find_spec(module_name), module_name)
|
|
|
|
def test_removed_tables_are_not_registered(self) -> None:
|
|
self.assertTrue(REMOVED_TABLES.isdisjoint(Base.metadata.tables))
|
|
|
|
def test_removed_schedule_task_is_not_registered(self) -> None:
|
|
include = set(celery_app.conf.include or [])
|
|
self.assertNotIn("app.tasks.schedule_tasks", include)
|
|
|
|
beat_schedule = celery_app.conf.beat_schedule or {}
|
|
self.assertNotIn("expire-overdue-schedule-items", beat_schedule)
|
|
scheduled_tasks = {
|
|
str(entry.get("task"))
|
|
for entry in beat_schedule.values()
|
|
if isinstance(entry, dict)
|
|
}
|
|
self.assertNotIn("app.tasks.schedule_tasks.expire_overdue_schedule_items", scheduled_tasks)
|
|
|
|
def test_removed_modules_are_not_protected_admin_menus(self) -> None:
|
|
self.assertNotIn("admin.todos", PROTECTED_MENU_CODES)
|
|
self.assertNotIn("admin.jwt_generator", PROTECTED_MENU_CODES)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|