Ticket #7666: 7666-failing-test.diff

File 7666-failing-test.diff, 1.5 KB (added by jkocherhans, 7 years ago)
  • tests/regressiontests/reverse_single_related/models.py

     
     1"""
     2Regression tests for an object that cannot access a single related object due
     3to a restrictive default manager.
     4"""
     5
     6from django.db import models
     7
     8
     9class SourceManager(models.Manager):
     10    def get_query_set(self):
     11        return super(SourceManager, self).get_query_set().filter(is_public=True)
     12
     13class Source(models.Model):
     14    is_public = models.BooleanField()
     15    objects = SourceManager()
     16
     17class Item(models.Model):
     18    source = models.ForeignKey(Source)
     19
     20
     21__test__ = {'API_TESTS':"""
     22
     23>>> public_source = Source.objects.create(is_public=True)
     24>>> public_item = Item.objects.create(source=public_source)
     25
     26>>> private_source = Source.objects.create(is_public=False)
     27>>> private_item = Item.objects.create(source=private_source)
     28
     29Only one source is available via all() due to the custom default manager.
     30
     31>>> Source.objects.all()
     32[<Source: Source object>]
     33
     34>>> public_item.source
     35<Source: Source object>
     36
     37Make sure that an item can still access its related source even if the default
     38manager doesn't normally allow it.
     39
     40>>> private_item.source
     41<Source: Source object>
     42
     43"""}
Back to Top