import os

from django.test import TestCase

from .client_context import resolve_client_from_host, resolve_forced_workspace_client
from .models import Client


class ClientResolutionTests(TestCase):
    def test_resolves_by_subdomain(self):
        Client.objects.create(name="Nixon", slug="nixon", subdomain="nixon", is_active=True)
        client = resolve_client_from_host("nixon.webaddress.com")
        self.assertIsNotNone(client)
        self.assertEqual(client.slug, "nixon")

    def test_ignores_localhost(self):
        Client.objects.create(name="Nixon", slug="nixon", subdomain="nixon", is_active=True)
        self.assertIsNone(resolve_client_from_host("localhost:8000"))

    def test_resolve_forced_workspace_client(self):
        Client.objects.create(name="Nixon", slug="nixon", subdomain="nixon", is_active=True)
        os.environ["FORCE_WORKSPACE_SUBDOMAIN"] = "nixon"
        try:
            c = resolve_forced_workspace_client()
            self.assertIsNotNone(c)
            self.assertEqual(c.slug, "nixon")
        finally:
            os.environ.pop("FORCE_WORKSPACE_SUBDOMAIN", None)
