Skip to content

Commit d2da2f5

Browse files
committed
Remove redundant test and move other to more appropriate place
1 parent 25e01d0 commit d2da2f5

File tree

2 files changed

+24
-45
lines changed

2 files changed

+24
-45
lines changed

tests/test_model_serializer.py

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -542,15 +542,6 @@ class Meta:
542542
unique_together = ("foreign_key", "one_to_one")
543543

544544

545-
class NullableUniqueTogetherModel(models.Model):
546-
name = models.CharField(max_length=100)
547-
field_1 = models.IntegerField(null=True)
548-
field_2 = models.TextField(null=True)
549-
550-
class Meta:
551-
unique_together = ("field_1", "field_2")
552-
553-
554545
class TestRelationalFieldMappings(TestCase):
555546
def test_pk_relations(self):
556547
class TestSerializer(serializers.ModelSerializer):
@@ -740,17 +731,6 @@ class Meta:
740731
""")
741732
self.assertEqual(repr(TestSerializer()), expected)
742733

743-
def test_nullable_unique_together(self):
744-
class TestSerializer(serializers.ModelSerializer):
745-
class Meta:
746-
model = NullableUniqueTogetherModel
747-
fields = ('name', 'field_1', 'field_2')
748-
749-
serializer = TestSerializer(data={"name": "Test"})
750-
self.assertTrue(serializer.is_valid(), serializer.errors)
751-
instance = serializer.save()
752-
assert isinstance(instance, NullableUniqueTogetherModel)
753-
754734

755735
class DisplayValueTargetModel(models.Model):
756736
name = models.CharField(max_length=100)
@@ -1420,28 +1400,3 @@ class Meta:
14201400
serializer.save()
14211401

14221402
self.assertEqual(instance.char_field, 'value changed by signal')
1423-
1424-
1425-
class UniqueConstraintNullableModel(models.Model):
1426-
title = models.CharField(max_length=100)
1427-
age = models.IntegerField(null=True)
1428-
tag = models.CharField(max_length=100, null=True)
1429-
1430-
class Meta:
1431-
constraints = [
1432-
# Unique constraint on 2 nullable fields
1433-
models.UniqueConstraint(name='unique_constraint', fields=('age', 'tag'))
1434-
]
1435-
1436-
1437-
class TestUniqueConstraintWithNullableFields(TestCase):
1438-
def test_nullable_unique_constraint_fields_are_not_required(self):
1439-
class UniqueConstraintNullableSerializer(serializers.ModelSerializer):
1440-
class Meta:
1441-
model = UniqueConstraintNullableModel
1442-
fields = ('title', 'age', 'tag')
1443-
1444-
serializer = UniqueConstraintNullableSerializer(data={'title': 'Bob'})
1445-
self.assertTrue(serializer.is_valid(), serializer.errors)
1446-
result = serializer.save()
1447-
self.assertIsInstance(result, UniqueConstraintNullableModel)

tests/test_validators.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,12 +547,30 @@ class Meta:
547547
]
548548

549549

550+
class UniqueConstraintNullableModel(models.Model):
551+
title = models.CharField(max_length=100)
552+
age = models.IntegerField(null=True)
553+
tag = models.CharField(max_length=100, null=True)
554+
555+
class Meta:
556+
constraints = [
557+
# Unique constraint on 2 nullable fields
558+
models.UniqueConstraint(name='unique_constraint', fields=('age', 'tag'))
559+
]
560+
561+
550562
class UniqueConstraintSerializer(serializers.ModelSerializer):
551563
class Meta:
552564
model = UniqueConstraintModel
553565
fields = '__all__'
554566

555567

568+
class UniqueConstraintNullableSerializer(serializers.ModelSerializer):
569+
class Meta:
570+
model = UniqueConstraintNullableModel
571+
fields = ('title', 'age', 'tag')
572+
573+
556574
class TestUniqueConstraintValidation(TestCase):
557575
def setUp(self):
558576
self.instance = UniqueConstraintModel.objects.create(
@@ -619,6 +637,12 @@ def test_single_field_uniq_validators(self):
619637
ids_in_qs = {frozenset(v.queryset.values_list(flat=True)) for v in validators if hasattr(v, "queryset")}
620638
assert ids_in_qs == {frozenset([1]), frozenset([3])}
621639

640+
def test_nullable_unique_constraint_fields_are_not_required(self):
641+
serializer = UniqueConstraintNullableSerializer(data={'title': 'Bob'})
642+
self.assertTrue(serializer.is_valid(), serializer.errors)
643+
result = serializer.save()
644+
self.assertIsInstance(result, UniqueConstraintNullableModel)
645+
622646

623647
# Tests for `UniqueForDateValidator`
624648
# ----------------------------------

0 commit comments

Comments
 (0)