Ticket #11938: to_field_tests.2.py

File to_field_tests.2.py, 1.4 KB (added by dcramer, 6 years ago)

Additional test case on deletion.

Line 
1class SimpleModel(models.Model):
2    user = models.ForeignKey(User, to_field="username")
3
4class ComplexModel(models.Model):
5    relations = models.ManyToManyField(User, through='IntermediateModel')
6
7class IntermediateModel(models.Model):
8    user = models.ForeignKey(User, to_field="username")
9    other = models.ForeignKey(M2MToField)
10
11class toFieldTests(unittest.TestCase):
12    def setUp(self):
13        self.user = User.objects.create(email="username@sample.com",username="username")
14   
15    def tearDown(self):
16        self.user.delete()
17       
18    class testRelational(self):
19        instance = ComplexModel.objects.create()
20       
21        IntermediateModel.objects.create(other=instance, user=self.user)
22       
23        # Fails
24        self.assertEquals(list(instance.relations.all()), [self.user])
25   
26    class testDeletion(self):
27        instance = ComplexModel.objects.create()
28        IntermediateModel.objects.create(other=instance, user=self.user)
29        instance = SimpleModel.objects.create(user=self.user)
30
31        for m in (SimpleModel, ComplexModel):
32            m.objects.all().delete()
33
34        SimpleModel.objects.all().delete()
35        ComplexModel.objects.all().delete()
36   
37    class testSimple(self):
38        instance = SimpleModel.objects.create(user=self.user)
39
40        self.assertEquals(instance.user, self.user)
41
42        # Fails
43        self.assertEquals(SimpleModel.objects.get(user=self.user), instance)
Back to Top