Skip to content

Commit 78f2cf8

Browse files
TestUniqueConstraintValidation failing on foreign key field.
1 parent ffadde9 commit 78f2cf8

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

tests/test_validators.py

+15-7
Original file line numberDiff line numberDiff line change
@@ -517,11 +517,15 @@ def filter(self, **kwargs):
517517
assert queryset.called_with == {'race_name': 'bar', 'position': 1}
518518

519519

520+
class FancyConditionModel(models.Model):
521+
id = models.IntegerField(primary_key=True)
522+
523+
520524
class UniqueConstraintModel(models.Model):
521525
race_name = models.CharField(max_length=100)
522526
position = models.IntegerField()
523527
global_id = models.IntegerField()
524-
fancy_conditions = models.IntegerField()
528+
fancy_conditions = models.ForeignKey(FancyConditionModel, on_delete=models.CASCADE)
525529

526530
class Meta:
527531
constraints = [
@@ -578,23 +582,24 @@ class Meta:
578582

579583
class TestUniqueConstraintValidation(TestCase):
580584
def setUp(self):
585+
fancy_model_condition = FancyConditionModel.objects.create(id=1)
581586
self.instance = UniqueConstraintModel.objects.create(
582587
race_name='example',
583588
position=1,
584589
global_id=1,
585-
fancy_conditions=1
590+
fancy_conditions=fancy_model_condition
586591
)
587592
UniqueConstraintModel.objects.create(
588593
race_name='example',
589594
position=2,
590595
global_id=2,
591-
fancy_conditions=1
596+
fancy_conditions=fancy_model_condition
592597
)
593598
UniqueConstraintModel.objects.create(
594599
race_name='other',
595600
position=1,
596601
global_id=3,
597-
fancy_conditions=1
602+
fancy_conditions=fancy_model_condition
598603
)
599604

600605
def test_repr(self):
@@ -618,24 +623,27 @@ def test_unique_together_condition(self):
618623
Fields used in UniqueConstraint's condition must be included
619624
into queryset existence check
620625
"""
626+
fancy_model_condition_9 = FancyConditionModel.objects.create(id=9)
627+
fancy_model_condition_10 = FancyConditionModel.objects.create(id=10)
628+
fancy_model_condition_11 = FancyConditionModel.objects.create(id=11)
621629
UniqueConstraintModel.objects.create(
622630
race_name='condition',
623631
position=1,
624632
global_id=10,
625-
fancy_conditions=10,
633+
fancy_conditions=fancy_model_condition_10,
626634
)
627635
serializer = UniqueConstraintSerializer(data={
628636
'race_name': 'condition',
629637
'position': 1,
630638
'global_id': 11,
631-
'fancy_conditions': 9,
639+
'fancy_conditions': fancy_model_condition_9,
632640
})
633641
assert serializer.is_valid()
634642
serializer = UniqueConstraintSerializer(data={
635643
'race_name': 'condition',
636644
'position': 1,
637645
'global_id': 11,
638-
'fancy_conditions': 11,
646+
'fancy_conditions': fancy_model_condition_11,
639647
})
640648
assert not serializer.is_valid()
641649

0 commit comments

Comments
 (0)