TorbatYar/backend/services/crm/app/tests/test_dependency.py
Mortezakoohjani 064d67f099 Ship CRM Core Platform (phases 6.0–6.3) with docs and prod deploy.
Add the Sales CRM service through collaboration, sync architecture/registry docs, expose crm.torbatyar.ir, and include a production deploy script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-24 20:32:00 +03:30

39 lines
1.2 KiB
Python

"""Dependency direction and DI tests."""
from __future__ import annotations
import inspect
from app.api import deps
from app.repositories.base import TenantBaseRepository
from app.repositories.foundation import LeadRepository
from app.services.foundation import LeadService
def test_repository_pattern():
assert issubclass(LeadRepository, TenantBaseRepository)
assert LeadRepository.model is not None
def test_service_depends_on_repository_not_api():
source = inspect.getsource(LeadService)
assert "fastapi" not in source.lower()
assert "LeadRepository" in source
def test_api_deps_expose_tenant_and_db():
assert hasattr(deps, "require_tenant")
assert hasattr(deps, "get_db")
assert hasattr(deps, "get_current_user")
def test_providers_are_protocols_only():
import app.providers.contracts as contracts
source = inspect.getsource(contracts)
assert "async def" in source
assert "class AutomationProvider" in source
# No concrete HTTP/DB implementation in contracts module
assert "httpx" not in source
assert "sqlalchemy" not in source
assert "AsyncSession" not in source