Commit 48e8e5c
committed
fix: testCheckCompatibility now catches subfeatures collapsed by compact=True
compact=True triggers collapse() which mutates _server_features by removing
subfeatures that roll up into a parent. The guard
`feature not in fo._server_features`
then wrongly treats those tested-but-collapsed features as "never tested",
silently skipping the assertion.
Fix: snapshot _server_features.keys() before calling dotted_feature_set_list
(compact=True), and use that snapshot in the guard.
Also update compatibility matrices for Xandikos and Stalwart:
search.recurrences.expanded.exception is now observed as supported on both
servers (the previously documented bugs appear to be fixed in current versions).
prompt: Running the compatibility tests (which again runs code from ~/caldav-server-tester), I find this: For servers Xandikos, Stalwart: search.recurrences.expanded.exception found to be supported, compatibility matrix says it's not supported. Despite this, the compatibility test passes - why? The test should break when differences are found, except for if feature support is "fragile" or "unknown". please fix
AI Prompts:
claude-sonnet-4-6: In this branch, the following tests are broken: FAILED tests/test_async_integration.py::TestAsyncForOx::test_object_by_uid - caldav.lib.error.PutError: PutError at '409 Conflict FAILED tests/test_caldav.py::TestForServerDavical::testRecurringDateWithExceptionSearch - KeyError: 'RECURRENCE-ID' FAILED tests/test_caldav.py::TestForServerCyrus::testRecurringDateWithExceptionSearch - KeyError: 'RECURRENCE-ID' ERROR tests/test_caldav.py::TestForServerBedework::testSetCalendarProperties - caldav.lib.error.NotFoundError: NotFoundError at '404 Not Found ERROR tests/test_caldav.py::TestForServerCCS::testSetCalendarProperties - caldav.lib.error.NotFoundError: NotFoundError at '404 Not Found ERROR tests/test_caldav.py::TestForServerSOGo::testSetCalendarProperties - caldav.lib.error.NotFoundError: NotFoundError at '404 Not Found in the master branch those two tests are broken: FAILED tests/test_caldav.py::TestForServerDavical::testRecurringDateWithExceptionSearch - KeyError: 'RECURRENCE-ID' FAILED tests/test_caldav.py::TestForServerCyrus::testRecurringDateWithExceptionSearch - KeyError: 'RECURRENCE-ID' ... and that's weird, because I'm pretty sure they passed before I pushed the changes and passed at github before I approved the pull request. please do some research
claude-sonnet-4-6: Oh, "this branch" was meant to be async-github-testruns. I've checked it out now.
claude-sonnet-4-6: Running the compatibility tests (which again runs code from ~/caldav-server-tester), I find this: For servers Xandikos, Stalwart: search.recurrences.expanded.exception found to be supported, compatibility matrix says it's not supported. Despite this, the compatibility test passes - why? The test should break when differences are found, except for if feature support is "fragile" or "unknown".
claude-sonnet-4-6: please fix1 parent 9f00439 commit 48e8e5c
2 files changed
Lines changed: 7 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
907 | 907 | | |
908 | 908 | | |
909 | 909 | | |
910 | | - | |
911 | 910 | | |
912 | | - | |
| 911 | + | |
913 | 912 | | |
914 | 913 | | |
915 | 914 | | |
| |||
1423 | 1422 | | |
1424 | 1423 | | |
1425 | 1424 | | |
1426 | | - | |
1427 | | - | |
1428 | | - | |
1429 | | - | |
| 1425 | + | |
1430 | 1426 | | |
1431 | 1427 | | |
1432 | 1428 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1535 | 1535 | | |
1536 | 1536 | | |
1537 | 1537 | | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
1538 | 1542 | | |
1539 | 1543 | | |
1540 | 1544 | | |
| |||
1547 | 1551 | | |
1548 | 1552 | | |
1549 | 1553 | | |
1550 | | - | |
| 1554 | + | |
1551 | 1555 | | |
1552 | 1556 | | |
1553 | 1557 | | |
| |||
0 commit comments