"""box_calc.html 을 테스트용 HTML 로 렌더한다 (erp_base.html 은 최소 스텁으로 대체).""" from __future__ import annotations import io import os import jinja2 ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) OUT_DIR = os.path.join(ROOT, "tests", "js", ".out") BASE_STUB = "{% block head_extra %}{% endblock %}{% block content %}{% endblock %}" BOX_RULES = [ {"product_code": "MS-1001", "product_name_snapshot": "미라네 1호 세트", "box_name": "쿠팡박스", "units_per_box": 8}, {"product_code": "MS-1004", "product_name_snapshot": "미라네 4호 세트", "box_name": "쿠팡박스", "units_per_box": 8}, ] CENTERS = [{"id": 1, "name": "대구3"}, {"id": 2, "name": "인천32"}] def main() -> None: env = jinja2.Environment( loader=jinja2.ChoiceLoader([ jinja2.DictLoader({"erp_base.html": BASE_STUB}), jinja2.FileSystemLoader(os.path.join(ROOT, "app", "modules", "cupang", "templates")), ]) ) html = env.get_template("cupang/box_calc.html").render(box_rules=BOX_RULES, centers=CENTERS) os.makedirs(OUT_DIR, exist_ok=True) path = os.path.join(OUT_DIR, "box_calc_render.html") io.open(path, "w", encoding="utf-8", newline="\n").write(html) print("rendered:", path) if __name__ == "__main__": main()