test_crm_contract_reedit_to_draft.py 785 B

12345678910111213141516171819202122232425
  1. import pytest
  2. from app.crud.crm.contract import (
  3. CONTRACT_EDITABLE_STATUSES,
  4. CONTRACT_NON_EDITABLE_STATUSES,
  5. assert_contract_editable_for_update,
  6. )
  7. def test_editable_statuses():
  8. assert CONTRACT_NON_EDITABLE_STATUSES == frozenset({"finished"})
  9. assert CONTRACT_EDITABLE_STATUSES == frozenset(
  10. {"draft", "approving", "approved", "executing", "invalid"}
  11. )
  12. assert "finished" not in CONTRACT_EDITABLE_STATUSES
  13. def test_assert_allows_editable():
  14. for s in ("draft", "approving", "approved", "executing", "invalid", None, ""):
  15. assert_contract_editable_for_update(s)
  16. def test_assert_rejects_non_editable():
  17. with pytest.raises(ValueError, match="已完成的合同不能修改"):
  18. assert_contract_editable_for_update("finished")