80 lines
2.5 KiB
Python
80 lines
2.5 KiB
Python
import sys
|
|
from pathlib import Path
|
|
|
|
from flask import Flask
|
|
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "api"))
|
|
|
|
|
|
def _app():
|
|
from insurance.db.database import db
|
|
import insurance.models # noqa: F401
|
|
|
|
app = Flask(__name__)
|
|
app.config.update(
|
|
SQLALCHEMY_DATABASE_URI="sqlite:///:memory:",
|
|
SQLALCHEMY_TRACK_MODIFICATIONS=False,
|
|
)
|
|
db.init_app(app)
|
|
return app
|
|
|
|
|
|
def test_list_companies_uses_company_ordering_only():
|
|
from insurance.admin.ppt_admin_service import PptAdminService
|
|
from insurance.db.compat import db
|
|
from insurance.models.ppt_config import PptCompany
|
|
|
|
app = _app()
|
|
with app.app_context():
|
|
db.create_all()
|
|
db.session.add_all([
|
|
PptCompany(id="beta", display_name="Beta", sort_order=2),
|
|
PptCompany(id="zeta", display_name="Zeta", sort_order=1),
|
|
PptCompany(id="alpha", display_name="Alpha", sort_order=1),
|
|
])
|
|
db.session.commit()
|
|
|
|
result = PptAdminService().list_companies({"page": 1, "page_size": 20})
|
|
|
|
assert result["code"] == 0
|
|
assert [item["id"] for item in result["data"]["items"]] == [
|
|
"alpha", "zeta", "beta",
|
|
]
|
|
|
|
|
|
def test_list_templates_has_deterministic_ordering():
|
|
from insurance.admin.ppt_admin_service import PptAdminService
|
|
from insurance.db.compat import db
|
|
from insurance.models.ppt_config import PptTemplate
|
|
|
|
app = _app()
|
|
with app.app_context():
|
|
db.create_all()
|
|
db.session.add_all([
|
|
PptTemplate(
|
|
id="savings-a-v1", plan_type="savings", scenario_tag="a",
|
|
asset_version=1, style_preset="broker",
|
|
),
|
|
PptTemplate(
|
|
id="savings-b-v5", plan_type="savings", scenario_tag="b",
|
|
asset_version=5, style_preset="broker",
|
|
),
|
|
PptTemplate(
|
|
id="ci-z-v1", plan_type="ci", scenario_tag="z",
|
|
asset_version=1, style_preset="broker",
|
|
),
|
|
PptTemplate(
|
|
id="savings-a-v2", plan_type="savings", scenario_tag="a",
|
|
asset_version=2, style_preset="broker",
|
|
),
|
|
])
|
|
db.session.commit()
|
|
|
|
result = PptAdminService().list_templates({"page": 1, "page_size": 20})
|
|
|
|
assert result["code"] == 0
|
|
assert [item["id"] for item in result["data"]["items"]] == [
|
|
"ci-z-v1", "savings-a-v2", "savings-a-v1", "savings-b-v5",
|
|
]
|