emersion / go-webdav

A Go library for WebDAV, CalDAV and CardDAV
MIT License
330 stars 72 forks source link

Working on integration/conformance tests, if anyone is interested to join! #173

Open oliverpool opened 1 month ago

oliverpool commented 1 month ago

Hi all,

I am experimenting with running the testsuite of ~https://github.com/apple/ccs-caldavtester~ https://github.com/CalConnect/caldavtester

The setup is challenging because it expects Python2, however I got it to work with nix. My (very-WIP) state is visible under https://github.com/oliverpool/go-webdav/tree/nix/testintegration :

If only a specific test is run (go test ./testintegration -test.run=TestCardDAV), then the testsuite stops as the first error (for faster feedback) with detailed logging (for easier debugging).

Future steps:

I make no promise of commitment for this (huge?) undertaking, but if anyone is interested in giving it a try, feel free to ping me!

PS: I also don't plan to make a merge request with this ugly hack (except if the maintainers really want this), but I plan to port the fixes (if I get to this point ^^)

emersion commented 1 month ago

That sounds great, thanks for the heads up! Yeah, unfortunately I'm not super thrilled about adding Python 2 stuff in CI. Would be very much interested in any conformance fixes though!

oliverpool commented 1 month ago

My current state:

  1. Don't use css-caldavtest, use https://github.com/CalConnect/caldavtester instead (better organized, not so many quirks, better logging)
  2. Nix is able to install unsupported software (like Python 2) and various packages (pycalendar in my case). This wasn't straightforward, but it works (and I am a beginner regarding nix).
  3. It is a very deep rabbit hole... https://github.com/emersion/go-vcard/pull/35 came on the way down.