logo
0
0
WeChat Login
Артем Малов<admalov@artenecy.com>
docs

E2E Tests with Real CalDAV Server

End-to-end tests that require a real CalDAV server connection.

Setup

Set the following environment variables before running e2e tests:

export CALDAV_URL="https://caldav.yandex.ru/" export CALDAV_USERNAME="your-username" export CALDAV_PASSWORD="your-app-password"

Or create a .env.e2e file (not committed to git) with:

CALDAV_URL=https://caldav.yandex.ru/ CALDAV_USERNAME=your-username CALDAV_PASSWORD=your-app-password

Then run tests using Makefile (recommended):

make test-e2e

Or manually:

set -a source .env.e2e set +a uv run pytest tests/e2e/ -v

Running E2E Tests

Run all e2e tests:

make test-e2e # or uv run pytest tests/e2e/ -v -m e2e

Run specific test:

uv run pytest tests/e2e/test_client_e2e.py::TestCalDAVClientE2E::test_create_and_get_event -v

Skip e2e tests (run only unit tests):

uv run pytest -m "not e2e"

Test Coverage

E2E tests cover:

  • Listing calendars
  • Creating events with all features (categories, priority, recurrence, attendees)
  • Getting events by UID
  • Updating events
  • Deleting events
  • Searching events
  • Extended fields in get_events

Notes

  • Tests automatically clean up created events after execution
  • Tests use the first available calendar (index 0)
  • Tests create events in the future to avoid conflicts
  • If credentials are not set, tests will be skipped automatically
  • Tests include delays between requests to avoid rate limiting
  • Some calendar providers (like Yandex) may have rate limits - if tests fail with 504/timeout errors, wait a few minutes before re-running
  • Some features (like categories, RRULE) may be transformed or overridden by the calendar provider
  • End-to-end coverage currently runs only against Yandex Calendar; other providers should work but are not exercised here