78afa40458
CI/CD Pipeline / Check if frontend-only change (push) Blocked by required conditions
CI/CD Pipeline / Validate - Code Quality (push) Blocked by required conditions
CI/CD Pipeline / Validate - Type Check (mypy) (push) Blocked by required conditions
CI/CD Pipeline / Validate - Migration (alembic) (push) Blocked by required conditions
CI/CD Pipeline / Unit Tests (push) Blocked by required conditions
CI/CD Pipeline / Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Frontend Lint (push) Blocked by required conditions
CI/CD Pipeline / Frontend Unit Tests (push) Blocked by required conditions
CI/CD Pipeline / PR Build API Image (push) Blocked by required conditions
CI/CD Pipeline / PR Build Web Image (push) Blocked by required conditions
CI/CD Pipeline / PR Build Worker Image (push) Blocked by required conditions
CI/CD Pipeline / Build Staging API Image (push) Blocked by required conditions
CI/CD Pipeline / Build Staging Web Image (push) Blocked by required conditions
CI/CD Pipeline / Build Staging Worker Image (push) Blocked by required conditions
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Blocked by required conditions
CI/CD Pipeline / Staging E2E Tests (push) Blocked by required conditions
CI/CD Pipeline / Staging API Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Build Production API Image (push) Blocked by required conditions
CI/CD Pipeline / Build Production Web Image (push) Blocked by required conditions
CI/CD Pipeline / Build Production Worker Image (push) Blocked by required conditions
CI/CD Pipeline / Deploy Production (push) Blocked by required conditions
CI/CD Pipeline / Production Browser E2E (push) Blocked by required conditions
CI/CD Pipeline / ACR Image Cleanup (push) Blocked by required conditions
69 lines
2.5 KiB
Python
Executable File
69 lines
2.5 KiB
Python
Executable File
"""EditTemplate 剪辑模板领域实体单测."""
|
|
|
|
import pytest
|
|
|
|
from packages.domain.edit_template import EditTemplate, EditTemplateStatus
|
|
from packages.domain.editing_mode import EditingMode
|
|
|
|
|
|
class TestEditTemplateStatus:
|
|
def test_values(self):
|
|
assert EditTemplateStatus.ACTIVE.value == "active"
|
|
assert EditTemplateStatus.INACTIVE.value == "inactive"
|
|
|
|
|
|
class TestEditTemplateCreate:
|
|
def test_create_default(self):
|
|
tpl = EditTemplate.create(name="测试模板")
|
|
assert tpl.id
|
|
assert tpl.name == "测试模板"
|
|
assert tpl.editing_mode == EditingMode.ONE_TAKE.value
|
|
assert tpl.status == EditTemplateStatus.ACTIVE
|
|
assert tpl.version == 1
|
|
assert tpl.config == {}
|
|
assert tpl.description == ""
|
|
assert tpl.sort_weight == 0
|
|
|
|
def test_create_strips_name(self):
|
|
tpl = EditTemplate.create(name=" 我的模板 ")
|
|
assert tpl.name == "我的模板"
|
|
|
|
def test_create_empty_name_raises(self):
|
|
with pytest.raises(ValueError, match="模板名称不能为空"):
|
|
EditTemplate.create(name="")
|
|
|
|
def test_create_whitespace_name_raises(self):
|
|
with pytest.raises(ValueError, match="模板名称不能为空"):
|
|
EditTemplate.create(name=" ")
|
|
|
|
def test_create_valid_editing_modes(self):
|
|
for mode in EditingMode:
|
|
tpl = EditTemplate.create(name=f"模板_{mode.value}", editing_mode=mode.value)
|
|
assert tpl.editing_mode == mode.value
|
|
|
|
def test_create_invalid_editing_mode_raises(self):
|
|
with pytest.raises(ValueError, match="无效的 editing_mode"):
|
|
EditTemplate.create(name="模板", editing_mode="invalid_mode")
|
|
|
|
def test_create_empty_editing_mode_defaults_to_one_take(self):
|
|
tpl = EditTemplate.create(name="模板", editing_mode="")
|
|
assert tpl.editing_mode == EditingMode.ONE_TAKE.value
|
|
|
|
def test_create_with_config(self):
|
|
config = {"key": "value"}
|
|
tpl = EditTemplate.create(name="模板", config=config)
|
|
assert tpl.config == config
|
|
|
|
def test_create_none_config_defaults_to_empty(self):
|
|
tpl = EditTemplate.create(name="模板", config=None)
|
|
assert tpl.config == {}
|
|
|
|
def test_create_with_custom_status(self):
|
|
tpl = EditTemplate.create(name="模板", status=EditTemplateStatus.INACTIVE)
|
|
assert tpl.status == EditTemplateStatus.INACTIVE
|
|
|
|
def test_create_unique_ids(self):
|
|
t1 = EditTemplate.create(name="t1")
|
|
t2 = EditTemplate.create(name="t2")
|
|
assert t1.id != t2.id
|