Files
Zhengen 052fff1a40 feat: add solutions app, fix HomePage subpage_types, add pytest test suite
- apps/solutions: SolutionIndexPage/SolutionPage (mirrors products/cases)
- apps/home: HomePage.subpage_types now includes products/solutions/cases index pages (previously only blog, blocking admin page creation)
- pytest.ini + conftest.py (root_page/home_page fixtures)
- unit tests for core (SEOablePage, FormBlock API repr), products, cases, forms (lead submit API)
2026-08-06 16:23:49 +08:00

51 lines
1.4 KiB
Python

"""apps.cases 单元测试:页面树结构与列表排序。"""
import pytest
from django.utils import timezone
from apps.cases.models import CaseStudyIndexPage, CaseStudyPage
pytestmark = pytest.mark.django_db
@pytest.fixture
def case_index(home_page):
index = CaseStudyIndexPage(title="客户案例", slug="cases", intro="客户的成功案例")
home_page.add_child(instance=index)
return index
def test_case_study_page_can_be_created_under_index(case_index):
case = CaseStudyPage(
title="某集团数字化转型",
slug="some-group",
client_name="某集团",
industry="制造业",
published_at=timezone.now(),
)
case_index.add_child(instance=case)
assert CaseStudyPage.objects.live().descendant_of(case_index).count() == 1
def test_case_index_context_orders_by_published_at_desc(case_index):
older = CaseStudyPage(
title="案例一",
slug="case-1",
client_name="客户一",
published_at=timezone.now() - timezone.timedelta(days=10),
)
case_index.add_child(instance=older)
newer = CaseStudyPage(
title="案例二",
slug="case-2",
client_name="客户二",
published_at=timezone.now(),
)
case_index.add_child(instance=newer)
context = case_index.get_context(request=None)
titles = [c.title for c in context["case_studies"]]
assert titles == ["案例二", "案例一"]