diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-10-28 13:00:08 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-10-28 13:00:08 +0000 |
| commit | 29ea1bef215040d34fb0f03c7f39f3a82515febf (patch) | |
| tree | 68ad531c822b62946ca5ac99f1c8c87a20ffe192 /tests/regressiontests/multiple_database/tests.py | |
| parent | 3a679cc1c458c4e31fc22e511e9bc51ed939f102 (diff) | |
[1.2.X] Fixed #14471 -- Corrected a regression in the use of methods on custom managers on related querysets. Thanks to Lucky for the report.
Backport of r14389 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14390 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/multiple_database/tests.py')
| -rw-r--r-- | tests/regressiontests/multiple_database/tests.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/regressiontests/multiple_database/tests.py b/tests/regressiontests/multiple_database/tests.py index f27d8b5a28..484cac6ada 100644 --- a/tests/regressiontests/multiple_database/tests.py +++ b/tests/regressiontests/multiple_database/tests.py @@ -890,6 +890,28 @@ class QueryTestCase(TestCase): except ValueError: pass + def test_related_manager(self): + "Related managers return managers, not querysets" + mark = Person.objects.using('other').create(name="Mark Pilgrim") + + # extra_arg is removed by the BookManager's implementation of + # create(); but the BookManager's implementation won't get called + # unless edited returns a Manager, not a queryset + mark.book_set.create(title="Dive into Python", + published=datetime.date(2009, 5, 4), + extra_arg=True) + + mark.book_set.get_or_create(title="Dive into Python", + published=datetime.date(2009, 5, 4), + extra_arg=True) + + mark.edited.create(title="Dive into Water", + published=datetime.date(2009, 5, 4), + extra_arg=True) + + mark.edited.get_or_create(title="Dive into Water", + published=datetime.date(2009, 5, 4), + extra_arg=True) class TestRouter(object): # A test router. The behaviour is vaguely master/slave, but the |
