b1babaaedd
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Has been skipped
CI/CD Pipeline / Build Production API Image (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Build Staging Web Image (push) Successful in 28s
CI/CD Pipeline / Frontend Lint (push) Successful in 1m54s
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 2m12s
CI/CD Pipeline / Build Staging API Image (push) Successful in 2m31s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 2m40s
CI/CD Pipeline / Unit Tests (push) Successful in 2m42s
CI/CD Pipeline / Integration Tests (push) Successful in 1m11s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 17m6s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 4m35s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 32s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 3m29s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 4m36s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com> Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
79 lines
2.2 KiB
Python
Executable File
79 lines
2.2 KiB
Python
Executable File
"""
|
|
TitleLibraryItem 标题库领域模型单元测试
|
|
"""
|
|
|
|
from packages.domain.title_library import TitleLibraryItem
|
|
|
|
|
|
class TestTitleLibraryItem:
|
|
"""TitleLibraryItem 测试"""
|
|
|
|
def test_create_minimal(self):
|
|
item = TitleLibraryItem(id="t1", user_id="u1", name="标题1", text="这是标题文本")
|
|
assert item.id == "t1"
|
|
assert item.user_id == "u1"
|
|
assert item.name == "标题1"
|
|
assert item.text == "这是标题文本"
|
|
|
|
def test_default_values(self):
|
|
item = TitleLibraryItem(id="t1", user_id="u1", name="n", text="t")
|
|
assert item.category == "default"
|
|
assert item.description == ""
|
|
assert item.tags == []
|
|
assert item.usage_count == 0
|
|
assert item.is_active is True
|
|
assert item.metadata_ == {}
|
|
|
|
def test_with_category(self):
|
|
item = TitleLibraryItem(
|
|
id="t1",
|
|
user_id="u1",
|
|
name="n",
|
|
text="t",
|
|
category="美食",
|
|
)
|
|
assert item.category == "美食"
|
|
|
|
def test_with_tags(self):
|
|
item = TitleLibraryItem(
|
|
id="t1",
|
|
user_id="u1",
|
|
name="n",
|
|
text="t",
|
|
tags=["爆款", "美食"],
|
|
)
|
|
assert len(item.tags) == 2
|
|
assert "爆款" in item.tags
|
|
|
|
def test_usage_count(self):
|
|
item = TitleLibraryItem(id="t1", user_id="u1", name="n", text="t")
|
|
assert item.usage_count == 0
|
|
item.usage_count = 10
|
|
assert item.usage_count == 10
|
|
|
|
def test_inactive(self):
|
|
item = TitleLibraryItem(
|
|
id="t1",
|
|
user_id="u1",
|
|
name="n",
|
|
text="t",
|
|
is_active=False,
|
|
)
|
|
assert item.is_active is False
|
|
|
|
def test_with_metadata(self):
|
|
meta = {"source": "import", "quality": "high"}
|
|
item = TitleLibraryItem(
|
|
id="t1",
|
|
user_id="u1",
|
|
name="n",
|
|
text="t",
|
|
metadata_=meta,
|
|
)
|
|
assert item.metadata_["source"] == "import"
|
|
|
|
def test_has_timestamps(self):
|
|
item = TitleLibraryItem(id="t1", user_id="u1", name="n", text="t")
|
|
assert item.created_at is not None
|
|
assert item.updated_at is not None
|