aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/djapp/settings.py3
-rw-r--r--tests/test_django.py10
-rw-r--r--tests/test_using.py6
3 files changed, 19 insertions, 0 deletions
diff --git a/tests/djapp/settings.py b/tests/djapp/settings.py
index c051faf..18e43dd 100644
--- a/tests/djapp/settings.py
+++ b/tests/djapp/settings.py
@@ -34,6 +34,9 @@ DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
},
+ 'replica': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ },
}
diff --git a/tests/test_django.py b/tests/test_django.py
index 4653305..a8f1f77 100644
--- a/tests/test_django.py
+++ b/tests/test_django.py
@@ -165,6 +165,16 @@ class ModelTests(django_test.TestCase):
self.assertRaises(factory.FactoryError, UnsetModelFactory.create)
+ def test_cross_database(self):
+ class OtherDBFactory(factory.django.DjangoModelFactory):
+ class Meta:
+ model = models.StandardModel
+ database = 'replica'
+
+ obj = OtherDBFactory()
+ self.assertFalse(models.StandardModel.objects.exists())
+ self.assertEqual(obj, models.StandardModel.objects.using('replica').get())
+
@unittest.skipIf(django is None, "Django not installed.")
class DjangoPkSequenceTestCase(django_test.TestCase):
diff --git a/tests/test_using.py b/tests/test_using.py
index 7318f2e..1d7977f 100644
--- a/tests/test_using.py
+++ b/tests/test_using.py
@@ -69,6 +69,9 @@ class FakeModel(object):
def order_by(self, *args, **kwargs):
return [1]
+ def using(self, db):
+ return self
+
objects = FakeModelManager()
def __init__(self, **kwargs):
@@ -1490,6 +1493,9 @@ class BetterFakeModelManager(object):
instance.id = 2
return instance, True
+ def using(self, db):
+ return self
+
class BetterFakeModel(object):
@classmethod