"""Tests for the Auth0Config class.""" from config import Auth0Config from pytest import MonkeyPatch def test_creates_auth0_config_with_valid_env_vars( monkeypatch: MonkeyPatch, ) -> None: """Test that Auth0Config is created successfully when AUTH0_TENANTS is set. :param monkeypatch: :return: """ monkeypatch.setenv('AUTH0_TENANTS', 'tenant-a,tenant-b') config = Auth0Config() assert config.auth0_tenants == 'tenant-a,tenant-b' assert config.tenant_list == ['tenant-a', 'tenant-b'] def test_tenant_list_strips_whitespace(monkeypatch: MonkeyPatch) -> None: """Test that tenant_list strips whitespace from tenant names. :param monkeypatch: :return: """ monkeypatch.setenv('AUTH0_TENANTS', ' tenant-a , tenant-b ') config = Auth0Config() assert config.tenant_list == ['tenant-a', 'tenant-b'] def test_tenant_list_single_tenant(monkeypatch: MonkeyPatch) -> None: """Test that tenant_list works with a single tenant. :param monkeypatch: :return: """ monkeypatch.setenv('AUTH0_TENANTS', 'my-tenant') config = Auth0Config() assert config.tenant_list == ['my-tenant'] def test_uses_default_tenants_when_auth0_tenants_env_var_is_missing( monkeypatch: MonkeyPatch, ) -> None: """Test that Auth0Config uses built-in defaults when AUTH0_TENANTS is unset. :param monkeypatch: :return: """ monkeypatch.delenv('AUTH0_TENANTS', raising=False) config = Auth0Config() assert len(config.tenant_list) > 0