aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMark Hughes2014-12-03 12:30:15 +0000
committerMark Hughes2014-12-03 12:30:15 +0000
commit55528addf97c1d3ee24bb3332fb6dcb5496de158 (patch)
tree581d0d926a3c0a84c21c592b9e473e6cc331f927 /tests
parentc5a2d501e56201c437118aa65004b33d20216b55 (diff)
downloaddjango-rest-framework-55528addf97c1d3ee24bb3332fb6dcb5496de158.tar.bz2
Added test to show potential issue with UniqueValidator being added to the underlying Django model.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_validators.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test_validators.py b/tests/test_validators.py
index 1df0641c..9226cc7a 100644
--- a/tests/test_validators.py
+++ b/tests/test_validators.py
@@ -20,6 +20,15 @@ class UniquenessSerializer(serializers.ModelSerializer):
model = UniquenessModel
+class AnotherUniquenessModel(models.Model):
+ code = models.IntegerField(unique=True)
+
+
+class AnotherUniquenessSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = AnotherUniquenessModel
+
+
class TestUniquenessValidation(TestCase):
def setUp(self):
self.instance = UniquenessModel.objects.create(username='existing')
@@ -51,6 +60,17 @@ class TestUniquenessValidation(TestCase):
assert serializer.is_valid()
assert serializer.validated_data == {'username': 'existing'}
+ def test_doesnt_pollute_model(self):
+ instance = AnotherUniquenessModel.objects.create(code='100')
+ serializer = AnotherUniquenessSerializer(instance)
+ self.assertEqual(
+ AnotherUniquenessModel._meta.get_field('code').validators, [])
+
+ # Accessing data shouldn't effect validators on the model
+ serializer.data
+ self.assertEqual(
+ AnotherUniquenessModel._meta.get_field('code').validators, [])
+
# Tests for `UniqueTogetherValidator`
# -----------------------------------