| 12345678910111213141516171819202122232425 |
- 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")
|