def setUpClass(cls): super().setUpClass() TenantModel = get_tenant_model() DomainModel = get_domain_model() def fake_get_response(request): return request cls.factory = RequestFactory() cls.middleware = TenantMiddleware(fake_get_response) tenant1 = TenantModel(schema_name="tenant1") tenant2 = TenantModel(schema_name="tenant2") tenant1.auto_create_schema = tenant2.auto_create_schema = False tenant1.save() tenant2.save() DomainModel(domain="tenant1.test.com", tenant=tenant1).save() DomainModel(domain="everyone.test.com", folder="tenant1", tenant=tenant1).save() DomainModel(domain="tenant2.test.com", tenant=tenant2).save() DomainModel(domain="everyone.test.com", folder="tenant2", tenant=tenant2).save()
from io import StringIO from django.core import management from django.test import TestCase from django_pgschemas.utils import get_domain_model, get_tenant_model TenantModel = get_tenant_model() DomainModel = get_domain_model() class WhoWillCommandTestCase(TestCase): """ Tests the whowill management command. """ @classmethod def setUpClass(cls): tenant = TenantModel(schema_name="tenant1") tenant.save(verbosity=0) DomainModel.objects.create(tenant=tenant, domain="tenant1.localhost", is_primary=True) @classmethod def tearDownClass(cls): for tenant in TenantModel.objects.all(): tenant.delete(force_drop=True) def split_output(self, buffer): buffer.seek(0) return set(buffer.read().strip().splitlines())
def test_get_domain_model(self): self.assertEqual(utils.get_domain_model()._meta.model_name, "domain")
from io import StringIO from unittest.mock import patch from django.core.management import call_command from django.core.management.base import CommandError from django.test import TestCase, TransactionTestCase from django_pgschemas import utils TenantModel = utils.get_tenant_model() DomainModel = utils.get_domain_model() class SchemaCreationCommandsTestCase(TestCase): """ Tests that the schema creation commands do what they are expected to do. """ def test_cloneschema(self): "Tests 'cloneschema' command" utils._create_clone_schema_function() self.assertFalse(utils.schema_exists("cloned")) call_command("cloneschema", "sample", "cloned", verbosity=0) # All good self.assertTrue(utils.schema_exists("cloned")) with self.assertRaises(CommandError): # Existing destination call_command("cloneschema", "sample", "cloned", verbosity=0) with self.assertRaises(CommandError): # Not existing source call_command("cloneschema", "nonexisting", "newschema",