TenantTestCase now runs in a transaction and no longer truncates all tables. Fixes #169.
This commit is contained in:
parent
e9ba644ad2
commit
e1e2067eaf
|
@ -1,9 +1,9 @@
|
|||
from django.db import connection
|
||||
from django.test import TransactionTestCase
|
||||
from django.test import TestCase
|
||||
from tenant_schemas.utils import get_tenant_model
|
||||
|
||||
|
||||
class TenantTestCase(TransactionTestCase):
|
||||
class TenantTestCase(TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
# create a tenant
|
||||
|
@ -20,4 +20,4 @@ class TenantTestCase(TransactionTestCase):
|
|||
cls.tenant.delete()
|
||||
|
||||
cursor = connection.cursor()
|
||||
cursor.execute('DROP SCHEMA test CASCADE')
|
||||
cursor.execute('DROP SCHEMA test CASCADE')
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
from django.conf import settings
|
||||
from django.db import connection
|
||||
|
||||
from tenant_schemas.tests.models import Tenant, NonAutoSyncTenant, DummyModel
|
||||
from tenant_schemas.tests.testcases import BaseTestCase
|
||||
from tenant_schemas.utils import tenant_context, schema_context, schema_exists
|
||||
from tenant_schemas.utils import tenant_context, schema_context, schema_exists, get_tenant_model
|
||||
from tenant_schemas.test.cases import TenantTestCase
|
||||
|
||||
|
||||
class TenantTestCase(BaseTestCase):
|
||||
class TenantTest(BaseTestCase):
|
||||
def tearDown(self):
|
||||
super(TenantTestCase, self).tearDown()
|
||||
super(TenantTest, self).tearDown()
|
||||
NonAutoSyncTenant.objects.all().delete()
|
||||
|
||||
def test_tenant_schema_is_created(self):
|
||||
|
@ -101,3 +102,12 @@ class TenantTestCase(BaseTestCase):
|
|||
connection.tenant = None
|
||||
with schema_context(tenant.schema_name):
|
||||
DummyModel(name="Survived it!").save()
|
||||
|
||||
|
||||
class TenantTestCaseTest(BaseTestCase, TenantTestCase):
|
||||
def test_tenant_survives_after_method1(self):
|
||||
# There are two tenants (public plus the one created by TenantTestCase)
|
||||
self.assertEquals(1 + 1, get_tenant_model().objects.all().count())
|
||||
|
||||
def test_tenant_survives_after_method2(self):
|
||||
self.assertEquals(1 + 1, get_tenant_model().objects.all().count())
|
||||
|
|
|
@ -12,13 +12,15 @@ class BaseTestCase(TransactionTestCase):
|
|||
"""
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
# settings needs some patching
|
||||
settings.TENANT_MODEL = 'tenant_schemas.Tenant'
|
||||
settings.TENANT_APPS = ('tenant_schemas',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.auth', )
|
||||
super(BaseTestCase, cls).setUpClass()
|
||||
|
||||
def setUp(self):
|
||||
# settings needs some patching
|
||||
settings.TENANT_MODEL = 'tenant_schemas.Tenant'
|
||||
connection.set_schema_to_public()
|
||||
|
||||
# add the public tenant
|
||||
self.public_tenant_domain = 'test.com'
|
||||
|
|
Loading…
Reference in New Issue