diff --git a/tier_validation_dynamic_state/models/tier_validation.py b/tier_validation_dynamic_state/models/tier_validation.py index 96aad57..be78241 100644 --- a/tier_validation_dynamic_state/models/tier_validation.py +++ b/tier_validation_dynamic_state/models/tier_validation.py @@ -134,8 +134,9 @@ def _check_and_request_tier(self, target_state): ], ) ) + valid_tiers = any([self.evaluate_tier(tier) for tier in tier_definitions]) - if not tier_definitions: + if not valid_tiers: return False current_reviews = self.review_ids.filtered( diff --git a/tier_validation_dynamic_state/tests/test_tier_validation_dynamic_state.py b/tier_validation_dynamic_state/tests/test_tier_validation_dynamic_state.py index 7ef2793..7105f33 100644 --- a/tier_validation_dynamic_state/tests/test_tier_validation_dynamic_state.py +++ b/tier_validation_dynamic_state/tests/test_tier_validation_dynamic_state.py @@ -123,3 +123,12 @@ def test_prepare_tier_review_vals(self): vals = self.test_record._prepare_tier_review_vals(self.tier_def_1, 1) self.assertEqual(vals["state_from"], "draft") self.assertEqual(vals["state_to"], "confirmed") + + def test_check_and_request_tier_no_definition(self): + record = self.test_record + + res = record._check_and_request_tier("cancel") + self.assertFalse(res) + + record.write({"state": "cancel"}) + self.assertEqual(record.state, "cancel")