About Testing Multi-database Operations with Django Unit Tests
Add the databases
attribute to the test case, to create multiple databases for the tests:
from django.test import TestCase
from django.contrib.auth.models import User
class MultiDBTest(TestCase):
databases = {"default", "archive"}
def setUp(self):
User.objects.create(username="user1")
User.objects.using("archive").create(username="user2")
def test_default_db(self):
self.assertTrue(User.objects.filter(username="user1").exists())
self.assertFalse(User.objects.filter(username="user2").exists())
def test_archive_db(self):
self.assertTrue(
User.objects.using("archive").filter(username="user2").exists()
)
self.assertFalse(
User.objects.using("archive").filter(username="user1").exists()
)
Tips and Tricks Development Testing Databases Django 5.2 Django 4.2 Django 3.2 PostgreSQL MySQL SQLite
Also by me
Django Paddle Subscriptions app
For Django-based SaaS projects.
Django GDPR Cookie Consent app
For Django websites that use cookies.