Skip to content

Commit 7f98e25

Browse files
tobixenclaude
andcommitted
fix: make --name registry lookup case-insensitive
The caldav test server registry now registers servers with capitalised names (e.g. "Radicale", "Xandikos") after a recent refactor in the caldav library. The exact-match lookup therefore failed silently when users passed lowercase names like --name radicale. Add a case-insensitive fallback that iterates registry.all_servers() when the exact key is not found. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 03bdf56 commit 7f98e25

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

src/caldav_server_tester/caldav_server_tester.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,13 @@ def check_server_compatibility(
206206
registry = _find_caldav_test_registry()
207207
if registry is not None:
208208
server = registry.get(name)
209+
if server is None:
210+
## Case-insensitive fallback — registry names may be capitalised
211+
## (e.g. "Radicale") while users naturally type lowercase
212+
for s in registry.all_servers():
213+
if s.name.lower() == name.lower():
214+
server = s
215+
break
209216
if server is not None:
210217
_check_server(
211218
server,

tests/test_cli.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,26 @@ def test_name_in_registry_uses_registry(self) -> None:
134134
["--name", "knownserver"],
135135
)
136136
mock_check.assert_called_once()
137+
138+
def test_name_lookup_is_case_insensitive(self) -> None:
139+
"""--name radicale should match a registry entry named 'Radicale'"""
140+
runner = CliRunner()
141+
mock_server = MagicMock()
142+
mock_server.name = "Radicale"
143+
144+
mock_registry = MagicMock()
145+
mock_registry.get.return_value = None # exact match fails
146+
mock_registry.all_servers.return_value = [mock_server]
147+
148+
with (
149+
patch(
150+
"caldav_server_tester.caldav_server_tester._find_caldav_test_registry",
151+
return_value=mock_registry,
152+
),
153+
patch("caldav_server_tester.caldav_server_tester._check_server") as mock_check,
154+
):
155+
runner.invoke(
156+
check_server_compatibility,
157+
["--name", "radicale"],
158+
)
159+
mock_check.assert_called_once()

0 commit comments

Comments
 (0)