Skip to content

Supported calendar components checks#9

Draft
tobixen wants to merge 2 commits intomainfrom
issu653
Draft

Supported calendar components checks#9
tobixen wants to merge 2 commits intomainfrom
issu653

Conversation

@tobixen
Copy link
Copy Markdown
Member

@tobixen tobixen commented Mar 25, 2026

Related to python-caldav/caldav#653 - test servers if they can tell what components the calendar supports, and also test weather calendar creation with a supported component set actually does anything.

Before merging, it's needed to:

tobixen and others added 2 commits March 25, 2026 18:18
Creates a VTODO-only calendar (when create-calendar is supported) and
checks whether the server returns the supported-calendar-component-set
property.  If the returned set is exactly ["VTODO"] the property is
advertised correctly (full); if the RFC default (all types) comes back
the server does not advertise it (unsupported).

Related to python-caldav/caldav#653

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
CheckGetSupportedComponents:
  Calls get_supported_components(with_fallback=False) on any available
  calendar.  Full = server returns the property; unsupported = property
  absent (RFC-compliant); ungraceful = unexpected exception.

CheckCreateCalendarWithComponentSet  (was CheckSupportedComponents):
  Creates a VTODO-only calendar and verifies the restriction is honoured.
  - If get-supported-components is full: verify the property on the new
    calendar returns ["VTODO"].
  - If get-supported-components is unsupported: probe by trying to save a
    VEVENT; server rejection means the restriction is enforced.
  Feature: create-calendar.with-supported-component-types.

Also import PropfindError which is used to distinguish "property absent"
from other errors in CheckGetSupportedComponents.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@tobixen tobixen marked this pull request as draft March 25, 2026 19:32
@tobixen tobixen changed the title Issu653 Supported calendar components checks Mar 25, 2026
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