Skip to content

chore: add DAV:limit and If-Match: * hints - #770

Merged
tobixen merged 4 commits into
masterfrom
chore/compat-hints-sync-limit
Oct 14, 2026
Merged

tobixen merged 4 commits into
masterfrom
chore/compat-hints-sync-limit

Conversation

@tobixen

@tobixen tobixen commented Oct 14, 2026

Copy link
Copy Markdown
Member

Commit message:

chore: add DAV:limit and If-Match: * hints

sync-token.limit came with hints for the four servers it was first run
against; posteo's profile predates the If-Match: * probe.  A run of all
servers with the pending caldav-server-tester PRs caught Davis,
Nextcloud (and so ecloud), CCS, Infomaniak and posteo, each checked
against the raw replies.  Nextcloud loses the changes past the limit:
it always returns the newest token.  A 507 refusal with
number-of-matches-within-limits, as RFC 6578 section 3.7 says, counts
as unsupported.

Prompt: `pytest tests/test_caldav.py::TestForServergmx::testCheckCompatibility` fails (...) rerun the compatbility (sic) tests in parallell (sic) for all enabled servers (...)
Followup-Prompt: Yes, add those hints - but do some research on why it got wrong in the first place. [the hints for the servers that failed the all-server compatibility run]

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>

Companion to python-caldav/caldav-server-tester#22 (the probe; its OX and 507 grading was fixed alongside these hints).

🤖 Generated with Claude Code

sync-token.limit came with hints for the four servers it was first run
against; posteo's profile predates the If-Match: * probe.  A run of all
servers with the pending caldav-server-tester PRs caught Davis,
Nextcloud (and so ecloud), CCS, Infomaniak and posteo, each checked
against the raw replies.  Nextcloud loses the changes past the limit:
it always returns the newest token.  A 507 refusal with
number-of-matches-within-limits, as RFC 6578 section 3.7 says, counts
as unsupported.

Prompt: `pytest tests/test_caldav.py::TestForServergmx::testCheckCompatibility` fails (...) rerun the compatbility (sic) tests in parallell (sic) for all enabled servers (...)
Followup-Prompt: Yes, add those hints - but do some research on why it got wrong in the first place. [the hints for the servers that failed the all-server compatibility run]

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
afix_calendar() always wiped and deleted a leftover calendar at the
fixed cal_id first.  On Posteo (create-calendar unsupported) it never
exists, and the server answers 403 rather than 404, so every async
calendar fixture errored out.  Skip the pre-delete there, like the sync
fixture does.

Prompt: I thought the test breakages towards posteo was (sic) because
I haven't paid for using that account.  The tests was (sic) always
tossing up a lot of AuthroizationError (sic).  I just did a run, and
it was mostly async tests failing.  Please look into it: (pytest
summary pasted: 47 AuthorizationError errors in TestAsyncForposteo)
(could it be a rate limit problem?)

Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
testEditSingleRecurrence used naive local times.  Within ten days of a
DST change, rescheduling the series to 08:00 on a day after the change
moved the earlier days' occurrences to 09:00, failing the assert (seen
on Posteo, 2026-10-14).  The async twin gets the same anchor for
symmetry.

Prompt: [after being told the Posteo testEditSingleRecurrence failure
is a DST artifact in the test, and asked whether to switch it to UTC]
Yes.  I think it can piggy-back the previous PR

Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pin afix_calendar() reusing the calendar at cal_id, without deleting
it, on a server without create-calendar whose DELETE answers 403, as
Posteo does.  Also correct two comments: the 403 comes from the DELETE,
not the wipe, and the async recurrence test never reschedules.

Prompt: [fix issues found during the review process]

Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
@tobixen
tobixen merged commit a13e731 into master Oct 14, 2026
17 checks passed
@tobixen
tobixen deleted the chore/compat-hints-sync-limit branch October 14, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant