def test_with_unexistent_tenant_in_http_header(self):
        create_tenant(name='test',
                      slug='test',
                      extra_data={},
                      domains=['test.localhost:8000'])
        factory = RequestFactory()
        request = factory.get(reverse('shared_schema_tenants:tenant_list'),
                              **{'HTTP_TENANT_SLUG': 'unexistent'})

        with self.assertRaises(TenantNotFoundError):
            get_tenant(request)
    def test_with_nothing(self):
        factory = RequestFactory()
        request = factory.get(reverse('shared_schema_tenants:tenant_list'))

        retrieved_tenant = get_tenant(request)

        self.assertEqual(retrieved_tenant, None)
    def test_with_correct_domain(self):
        tenant = create_tenant(name='test',
                               slug='test',
                               extra_data={},
                               domains=['test.localhost:8000'])
        factory = RequestFactory()
        request = factory.get(reverse('shared_schema_tenants:tenant_list'),
                              HTTP_HOST='test.localhost:8000')
        retrieved_tenant = get_tenant(request)

        self.assertEqual(retrieved_tenant, tenant)
    def test_with_http_header(self):
        tenant = create_tenant(name='test',
                               slug='test',
                               extra_data={},
                               domains=['test.localhost:8000'])
        factory = RequestFactory()
        request = factory.get(reverse('shared_schema_tenants:tenant_list'),
                              **{'HTTP_TENANT_SLUG': tenant.slug})

        retrieved_tenant = get_tenant(request)

        self.assertEqual(retrieved_tenant, tenant)
    def test_with_previously_set_tenant(self):
        tenant = create_tenant(name='test',
                               slug='test',
                               extra_data={},
                               domains=['test.localhost:8000'])
        factory = RequestFactory()
        request = factory.get(reverse('shared_schema_tenants:tenant_list'))

        set_current_tenant(tenant.slug)
        retrieved_tenant = get_tenant(request)

        self.assertEqual(retrieved_tenant, tenant)