def setUpTestData(cls): 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.localhost", tenant=tenant1).save() DomainModel( domain="tenant1redirect.localhost", tenant=tenant1, is_primary=False, redirect_to_primary=True ).save() DomainModel( domain="everyone.localhost", folder="tenant1redirect", tenant=tenant1, is_primary=False, redirect_to_primary=True, ).save() DomainModel(domain="everyone.localhost", folder="tenant2", tenant=tenant2).save() DomainModel( domain="tenant2redirect.localhost", tenant=tenant2, is_primary=False, redirect_to_primary=True ).save() DomainModel( domain="everyone.localhost", folder="tenant2redirect", tenant=tenant2, is_primary=False, redirect_to_primary=True, ).save()
def reverser_func(self, name, domain, path="/"): """ Reverses `name` in the urlconf returned by processing `domain` at `path`. """ def fake_get_response(request): return request factory = RequestFactory() request = factory.get(path, HTTP_HOST=domain) modified_request = TenantMiddleware(fake_get_response)(request) with modified_request.tenant: urlconf = import_module(modified_request.urlconf) reverse_response = reverse(name, urlconf=urlconf) del sys.modules[modified_request. urlconf] # required to simulate new thread return reverse_response
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()