05/06/2026 Initial commit
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
"""
|
||||
tests/conftest.py — Shared pytest fixtures for both app factories.
|
||||
"""
|
||||
import pytest
|
||||
from app.admin import create_admin_app
|
||||
from app.tenant import create_tenant_app
|
||||
from app.extensions import db as _db
|
||||
from config import TestingConfig
|
||||
|
||||
|
||||
def _seed_plans(db):
|
||||
"""Insert the three base subscription plans. Called once per session."""
|
||||
from app.models.platform import Plan
|
||||
if Plan.query.count() > 0:
|
||||
return
|
||||
plans = [
|
||||
Plan(name="Starter", price_monthly=29.00, max_staff=3, max_locations=1,
|
||||
features_json={"pos": True, "appointments": True, "customers": True,
|
||||
"services": True, "promotions": True,
|
||||
"appointment_reminders": True, "customer_reviews": True,
|
||||
"reconciliation": True, "basic_reports": True,
|
||||
"inventory": False, "commission": False,
|
||||
"full_reports": False, "multi_location": False,
|
||||
"online_booking": False, "waitlist": False,
|
||||
"marketing": False}),
|
||||
Plan(name="Growth", price_monthly=59.00, max_staff=10, max_locations=3,
|
||||
features_json={"pos": True, "appointments": True, "customers": True,
|
||||
"services": True, "promotions": True,
|
||||
"appointment_reminders": True, "customer_reviews": True,
|
||||
"reconciliation": True, "basic_reports": True,
|
||||
"inventory": True, "commission": True,
|
||||
"full_reports": True, "multi_location": True,
|
||||
"online_booking": True, "waitlist": True,
|
||||
"marketing": False}),
|
||||
Plan(name="Pro", price_monthly=99.00, max_staff=None, max_locations=None,
|
||||
features_json={"pos": True, "appointments": True, "customers": True,
|
||||
"services": True, "promotions": True,
|
||||
"appointment_reminders": True, "customer_reviews": True,
|
||||
"reconciliation": True, "basic_reports": True,
|
||||
"inventory": True, "commission": True,
|
||||
"full_reports": True, "multi_location": True,
|
||||
"online_booking": True, "waitlist": True,
|
||||
"marketing": True}),
|
||||
]
|
||||
db.session.add_all(plans)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def admin_app():
|
||||
app = create_admin_app(config_override=TestingConfig)
|
||||
with app.app_context():
|
||||
_db.create_all()
|
||||
_seed_plans(_db)
|
||||
yield app
|
||||
_db.drop_all()
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def tenant_app():
|
||||
app = create_tenant_app(config_override=TestingConfig)
|
||||
with app.app_context():
|
||||
_db.create_all()
|
||||
_seed_plans(_db)
|
||||
yield app
|
||||
_db.drop_all()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def admin_client(admin_app):
|
||||
return admin_app.test_client()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def tenant_client(tenant_app):
|
||||
return tenant_app.test_client()
|
||||
Reference in New Issue
Block a user