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>
64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
"""Migration metadata tests."""
|
|
from pathlib import Path
|
|
|
|
from alembic.config import Config
|
|
from alembic.script import ScriptDirectory
|
|
|
|
|
|
def test_alembic_revisions_exist():
|
|
root = Path(__file__).resolve().parents[2]
|
|
cfg = Config(str(root / "alembic.ini"))
|
|
cfg.set_main_option("script_location", str(root / "alembic"))
|
|
scripts = ScriptDirectory.from_config(cfg)
|
|
revisions = list(scripts.walk_revisions())
|
|
assert revisions
|
|
assert revisions[0].revision == "0004_phase_63_collaboration"
|
|
assert revisions[-1].revision == "0001_initial"
|
|
assert revisions[-1].down_revision is None
|
|
|
|
|
|
def test_migration_upgrade_creates_metadata_tables(db_setup):
|
|
from app.core.database import Base
|
|
import app.models # noqa: F401
|
|
|
|
expected = {
|
|
"leads",
|
|
"contacts",
|
|
"organizations",
|
|
"pipelines",
|
|
"pipeline_stages",
|
|
"opportunities",
|
|
"sales_activities",
|
|
"quotes",
|
|
"sales_playbooks",
|
|
"sales_forecasts",
|
|
"sales_goals",
|
|
"sales_targets",
|
|
"activity_types",
|
|
"activity_statuses",
|
|
"activity_priorities",
|
|
"activity_participants",
|
|
"activity_reminders",
|
|
"tasks",
|
|
"task_checklists",
|
|
"meetings",
|
|
"meeting_attendees",
|
|
"call_logs",
|
|
"call_outcomes",
|
|
"emails",
|
|
"email_threads",
|
|
"sales_timeline",
|
|
"timeline_events",
|
|
"comments",
|
|
"comment_versions",
|
|
"mentions",
|
|
"bookmarks",
|
|
"favorites",
|
|
"sales_team_members",
|
|
"team_roles",
|
|
"team_assignments",
|
|
"crm_notifications_preferences",
|
|
"sales_collaboration_audit",
|
|
}
|
|
assert expected.issubset(set(Base.metadata.tables.keys()))
|