Files
shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py
2026-09-02 08:20:52 +08:00

26 lines
785 B
Python

import pytest
from app.crud.crm.contract import (
CONTRACT_EDITABLE_STATUSES,
CONTRACT_NON_EDITABLE_STATUSES,
assert_contract_editable_for_update,
)
def test_editable_statuses():
assert CONTRACT_NON_EDITABLE_STATUSES == frozenset({"finished"})
assert CONTRACT_EDITABLE_STATUSES == frozenset(
{"draft", "approving", "approved", "executing", "invalid"}
)
assert "finished" not in CONTRACT_EDITABLE_STATUSES
def test_assert_allows_editable():
for s in ("draft", "approving", "approved", "executing", "invalid", None, ""):
assert_contract_editable_for_update(s)
def test_assert_rejects_non_editable():
with pytest.raises(ValueError, match="已完成的合同不能修改"):
assert_contract_editable_for_update("finished")