summaryrefslogtreecommitdiff
path: root/tests/regressiontests/multiple_database/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/multiple_database/tests.py')
-rw-r--r--tests/regressiontests/multiple_database/tests.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/regressiontests/multiple_database/tests.py b/tests/regressiontests/multiple_database/tests.py
index e5e9ff20fc..0993ecdd6d 100644
--- a/tests/regressiontests/multiple_database/tests.py
+++ b/tests/regressiontests/multiple_database/tests.py
@@ -891,6 +891,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