You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: caldav/compatibility_hints.py
+44-21Lines changed: 44 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,12 @@ class FeatureSet:
22
22
support -> "supported" (default), "unsupported", "fragile", "broken", "ungraceful"
23
23
"""
24
24
FEATURES= {
25
+
"get-current-user-principal": {
26
+
"description": "Support for RFC5397, current principal extension. Most CalDAV servers have this, but it is an extension to the standard",
27
+
"features": {
28
+
"with-calendars": "Principal has one or more calendars. Some servers and providers comes with a pre-defined calendar for each user, for other servers a calendar has to be explicitly created (supported means there exists a calendar - it may be because the calendar was already provisioned together with the principal, or it may be because a calendar was created manually, the checks can't see the difference)"
29
+
}
30
+
},
25
31
"rate-limit": {
26
32
"type": "client-feature",
27
33
"description": "client (or test code) must not send requests too fast",
@@ -40,20 +46,28 @@ class FeatureSet:
40
46
"type": "tests-behaviour",
41
47
"description": "Deleting a calendar does not delete the objects, or perhaps create/delete of calendars does not work at all. For each test run, every calendar resource object should be deleted for every test run",
42
48
},
49
+
"create-calendar": {
50
+
"description": "RFC4791 says that \"support for MKCALENDAR on the server is only RECOMMENDED and not REQUIRED because some calendar stores only support one calendar per user (or principal), and those are typically pre-created for each account\". Hence a conformant server may opt to not support creating calendars, this is often seen for cloud services (some services allows extra calendars to be made, but not through the CalDAV protocol). (RFC4791 also says that the server MAY support MKCOL in section 8.5.2. I do read it as MKCOL may be used for creating calendars - which is weird, since section 8.5.2 is titled \"external attachments\". We should consider testing this as well)",
51
+
"features": {
52
+
"auto": {
53
+
"description": "Accessing a calendar which does not exist automatically creates it",
54
+
}
55
+
}
56
+
},
43
57
"delete-calendar": {
44
58
"description": "RFC4791 says nothing about deletion of calendars, so the server implementation is free to choose weather this should be supported or not. Section 3.2.3.2 in RFC 6638 says that if a calendar is deleted, all the calendarobjectresources on the calendar should also be deleted - but it's a bit unclear if this only applies to scheduling objects or not. Some calendar servers moves the object to a trashcan rather than deleting it"
45
59
},
46
60
"recurrences": {
47
61
"description": "Support for recurring events and tasks",
48
62
"features": {
49
-
"save_load": {
63
+
"save-load": {
50
64
"description": "Calendar server should accept ojects with RRULE given, as well as objects with recurrence sets, and should be able to deliver back the same data",
51
65
"features": {
52
66
"event": {"description": "works with events"},
53
67
"todo": {"description": "works with tasks"},
54
68
}
55
69
},
56
-
"search_includes_implicit_recurrences": {
70
+
"search-includes-implicit-recurrences": {
57
71
"description": "RFC says that the server MUST expand recurring components to determine whether any recurrence instances overlap the specified time range. Considered supported i.e. if a search for 2005 yields a yearly event happening first time in 2004.",
"description": "According to RFC 4791, the server MUST expand recurrence objects if asked for it - but many server doesn't do that. It doesn't matter much by now, as the client library can do the expandation. Some servers don't do expand at all, others deliver broken data, typically missing RECURRENCE-ID",
0 commit comments