def setUp(self): super(RoutesTestCase, self).setUp() self.factory = RequestFactory() self.tm = TenantMiddleware() self.tenant_domain = 'tenant.test.com' self.tenant = Tenant(domain_urls=[self.tenant_domain], schema_name='test') self.tenant.save()
class RoutesTestCase(BaseTestCase): @classmethod def setUpClass(cls): super(RoutesTestCase, cls).setUpClass() settings.SHARED_APPS = ('django_tenants', 'customers') settings.TENANT_APPS = ( 'dts_test_app', 'django.contrib.contenttypes', 'django.contrib.auth', ) settings.INSTALLED_APPS = settings.SHARED_APPS + settings.TENANT_APPS cls.sync_shared() cls.public_tenant = get_tenant_model()( schema_name=get_public_schema_name()) cls.public_tenant.save() cls.public_domain = get_tenant_domain_model()(domain='test.com', tenant=cls.public_tenant) cls.public_domain.save() def setUp(self): super(RoutesTestCase, self).setUp() self.factory = RequestFactory() self.tm = TenantMiddleware() self.tenant_domain = 'tenant.test.com' self.tenant = get_tenant_model()(schema_name='test') self.tenant.save() self.domain = get_tenant_domain_model()(tenant=self.tenant, domain=self.tenant_domain) self.domain.save() def test_tenant_routing(self): """ Request path should not be altered. """ request_url = '/any/request/' request = self.factory.get('/any/request/', HTTP_HOST=self.tenant_domain) self.tm.process_request(request) self.assertEquals(request.path_info, request_url) # request.tenant should also have been set self.assertEquals(request.tenant, self.tenant) def test_public_schema_routing(self): """ Request path should not be altered. """ request_url = '/any/request/' request = self.factory.get('/any/request/', HTTP_HOST=self.public_domain.domain) self.tm.process_request(request) self.assertEquals(request.path_info, request_url) # request.tenant should also have been set self.assertEquals(request.tenant, self.public_tenant)
def setUp(self): super(RoutesTestCase, self).setUp() self.factory = RequestFactory() self.tm = TenantMiddleware() self.tenant_domain = 'tenant.test.com' self.tenant = get_tenant_model()(schema_name='test') self.tenant.save() self.domain = get_tenant_domain_model()(tenant=self.tenant, domain=self.tenant_domain) self.domain.save()
class RoutesTestCase(BaseTestCase): @classmethod def setUpClass(cls): super(RoutesTestCase, cls).setUpClass() settings.SHARED_APPS = ('django_tenants', 'customers') settings.TENANT_APPS = ('dts_test_app', 'django.contrib.contenttypes', 'django.contrib.auth', ) settings.INSTALLED_APPS = settings.SHARED_APPS + settings.TENANT_APPS cls.sync_shared() cls.public_tenant = get_tenant_model()(schema_name=get_public_schema_name()) cls.public_tenant.save() cls.public_domain = get_tenant_domain_model()(domain='test.com', tenant=cls.public_tenant) cls.public_domain.save() def setUp(self): super(RoutesTestCase, self).setUp() self.factory = RequestFactory() self.tm = TenantMiddleware() self.tenant_domain = 'tenant.test.com' self.tenant = get_tenant_model()(schema_name='test') self.tenant.save() self.domain = get_tenant_domain_model()(tenant=self.tenant, domain=self.tenant_domain) self.domain.save() def test_tenant_routing(self): """ Request path should not be altered. """ request_url = '/any/request/' request = self.factory.get('/any/request/', HTTP_HOST=self.tenant_domain) self.tm.process_request(request) self.assertEquals(request.path_info, request_url) # request.tenant should also have been set self.assertEquals(request.tenant, self.tenant) def test_public_schema_routing(self): """ Request path should not be altered. """ request_url = '/any/request/' request = self.factory.get('/any/request/', HTTP_HOST=self.public_domain.domain) self.tm.process_request(request) self.assertEquals(request.path_info, request_url) # request.tenant should also have been set self.assertEquals(request.tenant, self.public_tenant)
class TenantClient(Client): tm = TenantMiddleware() def __init__(self, tenant, enforce_csrf_checks=False, **defaults): super(TenantClient, self).__init__(enforce_csrf_checks, **defaults) self.tenant = tenant def get(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantClient, self).get(path, data, **extra) def post(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantClient, self).post(path, data, **extra) def patch(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantClient, self).patch(path, data, **extra) def put(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantClient, self).put(path, data, **extra) def delete(self, path, data='', content_type='application/octet-stream', **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantClient, self).delete(path, data, **extra)
class TenantRequestFactory(RequestFactory): tm = TenantMiddleware() def __init__(self, tenant, **defaults): super(TenantRequestFactory, self).__init__(**defaults) self.tenant = tenant def get(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantRequestFactory, self).get(path, data, **extra) def post(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantRequestFactory, self).post(path, data, **extra) def patch(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantRequestFactory, self).patch(path, data, **extra) def put(self, path, data={}, **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantRequestFactory, self).put(path, data, **extra) def delete(self, path, data='', content_type='application/octet-stream', **extra): if 'HTTP_HOST' not in extra: extra['HTTP_HOST'] = self.tenant.get_primary_domain().domain return super(TenantRequestFactory, self).delete(path, data, **extra)