summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2013-08-20 01:52:32 -0400
committerSimon Charette <charette.s@gmail.com>2013-10-03 13:20:05 -0400
commitfa2e1371cda1e72d82b4133ad0b49a18e43ba411 (patch)
tree9d732e2ac0eb0b89cfc37ecccab41fe64eb31b33 /tests
parentc4db7f075e269411287ff14b5518412250ba455f (diff)
Fixed #21216 -- Allow `OneToOneField` reverse accessor to be hidden.
Diffstat (limited to 'tests')
-rw-r--r--tests/one_to_one_regress/models.py15
-rw-r--r--tests/one_to_one_regress/tests.py16
2 files changed, 26 insertions, 5 deletions
diff --git a/tests/one_to_one_regress/models.py b/tests/one_to_one_regress/models.py
index 9b65edf2ab..3cd4e17604 100644
--- a/tests/one_to_one_regress/models.py
+++ b/tests/one_to_one_regress/models.py
@@ -12,6 +12,7 @@ class Place(models.Model):
def __str__(self):
return "%s the place" % self.name
+
@python_2_unicode_compatible
class Restaurant(models.Model):
place = models.OneToOneField(Place)
@@ -21,6 +22,7 @@ class Restaurant(models.Model):
def __str__(self):
return "%s the restaurant" % self.place.name
+
@python_2_unicode_compatible
class Bar(models.Model):
place = models.OneToOneField(Place)
@@ -29,23 +31,32 @@ class Bar(models.Model):
def __str__(self):
return "%s the bar" % self.place.name
+
class UndergroundBar(models.Model):
place = models.OneToOneField(Place, null=True)
serves_cocktails = models.BooleanField(default=True)
+
@python_2_unicode_compatible
class Favorites(models.Model):
- name = models.CharField(max_length = 50)
+ name = models.CharField(max_length=50)
restaurants = models.ManyToManyField(Restaurant)
def __str__(self):
return "Favorites for %s" % self.name
+
class Target(models.Model):
pass
+
class Pointer(models.Model):
other = models.OneToOneField(Target, primary_key=True)
+
class Pointer2(models.Model):
- other = models.OneToOneField(Target)
+ other = models.OneToOneField(Target, related_name='second_pointer')
+
+
+class HiddenPointer(models.Model):
+ target = models.OneToOneField(Target, related_name='hidden+')
diff --git a/tests/one_to_one_regress/tests.py b/tests/one_to_one_regress/tests.py
index 3dfe3e466e..da4309e821 100644
--- a/tests/one_to_one_regress/tests.py
+++ b/tests/one_to_one_regress/tests.py
@@ -2,7 +2,8 @@ from __future__ import unicode_literals
from django.test import TestCase
-from .models import Place, Restaurant, Bar, Favorites, Target, UndergroundBar
+from .models import (Bar, Favorites, HiddenPointer, Place, Restaurant, Target,
+ UndergroundBar)
class OneToOneRegressionTests(TestCase):
@@ -125,11 +126,11 @@ class OneToOneRegressionTests(TestCase):
[]
)
self.assertQuerysetEqual(
- Target.objects.filter(pointer2=None),
+ Target.objects.filter(second_pointer=None),
['<Target: Target object>']
)
self.assertQuerysetEqual(
- Target.objects.exclude(pointer2=None),
+ Target.objects.exclude(second_pointer=None),
[]
)
@@ -250,3 +251,12 @@ class OneToOneRegressionTests(TestCase):
self.p1.delete()
self.assertTrue(UndergroundBar.objects.filter(pk=u.pk).exists())
self.assertIsNone(UndergroundBar.objects.get(pk=u.pk).place)
+
+ def test_hidden_accessor(self):
+ """
+ When a '+' ending related name is specified no reverse accessor should
+ be added to the related model.
+ """
+ self.assertFalse(
+ hasattr(Target, HiddenPointer._meta.get_field('target').related.get_accessor_name())
+ )