test_crm_contract_reedit_to_draft.py 762 B

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