diff options
author | Ben Demboski <ben@joltlabs.com> | 2016-06-20 14:52:14 -0700 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2016-06-27 13:33:37 -0400 |
commit | 2224a56631eae3342993e4b7b90e80f59a167151 (patch) | |
tree | da594ff9151126d137ffe2aca7ef2424b41443c6 /tests/multiple_database | |
parent | 03f6d272abe12a0d5c915253efb5de99583d2413 (diff) | |
download | django-2224a56631eae3342993e4b7b90e80f59a167151.tar.gz |
Fixed #26784 -- Made ForeignKey.validate() pass `model` to router if model_instance=None.
Diffstat (limited to 'tests/multiple_database')
-rw-r--r-- | tests/multiple_database/tests.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/multiple_database/tests.py b/tests/multiple_database/tests.py index 763f92777a..5d30cee891 100644 --- a/tests/multiple_database/tests.py +++ b/tests/multiple_database/tests.py @@ -586,6 +586,17 @@ class QueryTestCase(TestCase): pluto = Pet.objects.using('other').create(name="Pluto", owner=mickey) self.assertIsNone(pluto.full_clean()) + # Any router that accesses `model` in db_for_read() works here. + @override_settings(DATABASE_ROUTERS=[AuthRouter()]) + def test_foreign_key_validation_with_router(self): + """ + ForeignKey.validate() passes `model` to db_for_read() even if + model_instance=None. + """ + mickey = Person.objects.create(name="Mickey") + owner_field = Pet._meta.get_field('owner') + self.assertEqual(owner_field.clean(mickey.pk, None), mickey.pk) + def test_o2o_separation(self): "OneToOne fields are constrained to a single database" # Create a user and profile on the default database |