summaryrefslogtreecommitdiff
path: root/tests/multiple_database/tests.py
diff options
context:
space:
mode:
authorBen Cail <bcail@crossway.org>2023-11-15 14:32:03 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2024-02-05 08:25:23 +0100
commit02a600ff67f7b106cdcab22310bacea98c1a26ba (patch)
tree5806f49c4417747082eceed3f84422c0f3203016 /tests/multiple_database/tests.py
parenta47de0d6cd440d4515ede48df8335d91d7ac7793 (diff)
Fixed #16281 -- Fixed ContentType.get_object_for_this_type() in a multiple database setup.
Diffstat (limited to 'tests/multiple_database/tests.py')
-rw-r--r--tests/multiple_database/tests.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/multiple_database/tests.py b/tests/multiple_database/tests.py
index 337ebae75e..9587030a46 100644
--- a/tests/multiple_database/tests.py
+++ b/tests/multiple_database/tests.py
@@ -1302,6 +1302,34 @@ class QueryTestCase(TestCase):
title="Dive into Water", published=datetime.date(2009, 5, 4), extra_arg=True
)
+ @override_settings(DATABASE_ROUTERS=["multiple_database.tests.TestRouter"])
+ def test_contenttype_in_separate_db(self):
+ ContentType.objects.using("other").all().delete()
+ book_other = Book.objects.using("other").create(
+ title="Test title other", published=datetime.date(2009, 5, 4)
+ )
+ book_default = Book.objects.using("default").create(
+ title="Test title default", published=datetime.date(2009, 5, 4)
+ )
+ book_type = ContentType.objects.using("default").get(
+ app_label="multiple_database", model="book"
+ )
+
+ book = book_type.get_object_for_this_type(title=book_other.title)
+ self.assertEqual(book, book_other)
+ book = book_type.get_object_for_this_type(using="other", title=book_other.title)
+ self.assertEqual(book, book_other)
+
+ with self.assertRaises(Book.DoesNotExist):
+ book_type.get_object_for_this_type(title=book_default.title)
+ book = book_type.get_object_for_this_type(
+ using="default", title=book_default.title
+ )
+ self.assertEqual(book, book_default)
+
+ all_books = book_type.get_all_objects_for_this_type()
+ self.assertCountEqual(all_books, [book_other])
+
class ConnectionRouterTestCase(SimpleTestCase):
@override_settings(