def test_tenant_caching(self): """Test that the tenant cache is successfully storing and expiring.""" mock_request = self.request_context["request"] middleware = KokuTenantMiddleware() middleware.get_tenant(Tenant, "localhost", mock_request) # Add one item to the cache self.assertEquals(KokuTenantMiddleware.tenant_cache.currsize, 1) middleware.get_tenant(Tenant, "localhost", mock_request) # Call the same tenant self.assertEquals(KokuTenantMiddleware.tenant_cache.currsize, 1) # Size should remain the same self.assertEquals(KokuTenantMiddleware.tenant_cache.currsize, 1) time.sleep(4) # Wait the time greater than the ttl self.assertEqual(KokuTenantMiddleware.tenant_cache.currsize, 0)
def test_get_default_tenant(self): """Test that the public tenant is returned.""" mock_request = Mock() del mock_request.user middleware = KokuTenantMiddleware() result = middleware.get_tenant(Tenant, 'localhost', mock_request) self.assertEqual(result.schema_name, 'public')
def test_get_tenant_with_user(self, mock_model): """Test that the customer tenant is returned.""" mock_request = Mock() mock_group = Mock() mock_customer = Mock() mock_group.id = ''.join( [random.choice(string.digits) for _ in range(6)]) mock_user_groups = mock_request.user.return_value.groups.return_value mock_user_groups.first.return_value = mock_group mock_customer.schema_name = self.schema_name mock_model.objects.get.return_value = mock_customer middleware = KokuTenantMiddleware() result = middleware.get_tenant(Tenant, 'localhost', mock_request) self.assertEqual(result.schema_name, self.schema_name)
def test_get_tenant_with_user(self): """Test that the customer tenant is returned.""" mock_request = self.request_context["request"] middleware = KokuTenantMiddleware() result = middleware.get_tenant(Tenant, "localhost", mock_request) self.assertEqual(result.schema_name, self.schema_name)