Skip to content

Commit 9423e82

Browse files
committed
Add tri-state tests for TLS
1 parent c4e55a5 commit 9423e82

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

tests/test_envconfig.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,58 @@ async def test_e2e_environment_overrides_client_connection(client: Client):
935935
)
936936

937937

938+
def test_tls_disabled_tri_state_behavior():
939+
"""Test TLS disabled tri-state behavior: null (unset), false (enabled), true (disabled)."""
940+
# Test 1: disabled=null (unset) with API key -> TLS enabled
941+
toml_null = textwrap.dedent(
942+
"""
943+
[profile.default]
944+
address = "my-address"
945+
api_key = "my-api-key"
946+
[profile.default.tls]
947+
server_name = "my-server"
948+
"""
949+
)
950+
profile_null = ClientConfigProfile.load(config_source=toml_null)
951+
assert profile_null.tls is not None
952+
assert profile_null.tls.disabled is None # disabled is null (unset)
953+
config_null = profile_null.to_client_connect_config()
954+
assert config_null.get("tls") is not None # TLS enabled
955+
956+
# Test 2: disabled=false (explicitly enabled) -> TLS enabled
957+
toml_false = textwrap.dedent(
958+
"""
959+
[profile.default]
960+
address = "my-address"
961+
[profile.default.tls]
962+
disabled = false
963+
server_name = "my-server"
964+
"""
965+
)
966+
profile_false = ClientConfigProfile.load(config_source=toml_false)
967+
assert profile_false.tls is not None
968+
assert profile_false.tls.disabled is False # explicitly disabled=false
969+
config_false = profile_false.to_client_connect_config()
970+
assert config_false.get("tls") is not None # TLS enabled
971+
972+
# Test 3: disabled=true (explicitly disabled) -> TLS disabled even with API key
973+
toml_true = textwrap.dedent(
974+
"""
975+
[profile.default]
976+
address = "my-address"
977+
api_key = "my-api-key"
978+
[profile.default.tls]
979+
disabled = true
980+
server_name = "should-be-ignored"
981+
"""
982+
)
983+
profile_true = ClientConfigProfile.load(config_source=toml_true)
984+
assert profile_true.tls is not None
985+
assert profile_true.tls.disabled is True # explicitly disabled=true
986+
config_true = profile_true.to_client_connect_config()
987+
assert config_true.get("tls") is False # TLS disabled even with API key
988+
989+
938990
async def test_e2e_multi_profile_different_client_connections(client: Client):
939991
"""Test multiple profiles creating different client connections."""
940992
# Get connection details from the fixture client

0 commit comments

Comments
 (0)