diff options
| author | Eduard Stepanov <e.an.stepanov@gmail.com> | 2016-06-23 12:22:19 +0300 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-06-28 11:39:20 -0400 |
| commit | 49b4596cb4744e4b68d56e6a540a3e15c1582963 (patch) | |
| tree | d3e924b25d768159a23784c2e2b1d004d561d03c /tests | |
| parent | c9ae09addffb839403312131d4251e9d8b454508 (diff) | |
Fixed #26786 -- Avoided redundant max value validators on integer fields.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/model_fields/test_integerfield.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/model_fields/test_integerfield.py b/tests/model_fields/test_integerfield.py index 27cbdb5259..a474e6e602 100644 --- a/tests/model_fields/test_integerfield.py +++ b/tests/model_fields/test_integerfield.py @@ -90,6 +90,35 @@ class IntegerFieldTests(TestCase): instance.value = max_value instance.full_clean() + def test_redundant_backend_range_validators(self): + """ + If there are stricter validators than the ones from the database + backend then the backend validators aren't added. + """ + min_backend_value, max_backend_value = self.backend_range + + if min_backend_value is not None: + min_custom_value = min_backend_value + 1 + ranged_value_field = self.model._meta.get_field('value').__class__( + validators=[validators.MinValueValidator(min_custom_value)] + ) + field_range_message = validators.MinValueValidator.message % { + 'limit_value': min_custom_value, + } + with self.assertRaisesMessage(ValidationError, "[%r]" % field_range_message): + ranged_value_field.run_validators(min_backend_value - 1) + + if max_backend_value is not None: + max_custom_value = max_backend_value - 1 + ranged_value_field = self.model._meta.get_field('value').__class__( + validators=[validators.MaxValueValidator(max_custom_value)] + ) + field_range_message = validators.MaxValueValidator.message % { + 'limit_value': max_custom_value, + } + with self.assertRaisesMessage(ValidationError, "[%r]" % field_range_message): + ranged_value_field.run_validators(max_backend_value + 1) + def test_types(self): instance = self.model(value=0) self.assertIsInstance(instance.value, six.integer_types) |
