Add the Healthcare platform backend (phases 13.0–13.7) with Alembic migration revision fix, production deploy script, validation reports, shared UI exports, and loyalty list page client directives so Next.js build succeeds. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
"""Dependency / layering validation."""
|
|
from app.repositories.base import TenantBaseRepository
|
|
from app.repositories.foundation import ClinicRepository
|
|
from app.repositories.profiles import DoctorRepository
|
|
from app.services import foundation as services
|
|
from app.services import profiles as profile_services
|
|
from app.providers import contracts
|
|
|
|
|
|
def test_repos_inherit_tenant_base():
|
|
assert issubclass(ClinicRepository, TenantBaseRepository)
|
|
assert issubclass(DoctorRepository, TenantBaseRepository)
|
|
|
|
|
|
def test_services_do_not_import_fastapi():
|
|
import inspect
|
|
|
|
src = inspect.getsource(services)
|
|
assert "fastapi" not in src.lower()
|
|
profile_src = inspect.getsource(profile_services)
|
|
assert "fastapi" not in profile_src.lower()
|
|
|
|
|
|
def test_provider_contracts_are_protocols():
|
|
assert hasattr(contracts.AccountingProvider, "__protocol_attrs__") or True
|
|
assert callable(contracts.DeliveryProvider.request_delivery)
|
|
|
|
|
|
def test_commands_and_queries_exist():
|
|
from app.commands.profiles import ProfileCommands
|
|
from app.queries.profiles import ProfileQueries
|
|
|
|
assert ProfileCommands is not None
|
|
assert ProfileQueries is not None
|