hass-core/tests/components/habitica/snapshots/test_calendar.ambr
Manu 6887a4419e
Add calendar platform to Habitica integration (#128248)
* Add calendar platform

* Add tests

* add missing reminders filter by date

* Add +1 day to todo end

* add 1 day to dailies, remove unused line of code

* Removing reminders calendar to a separate PR

* fix upcoming event for dailies

* util function for rrule string

* Add test for get_recurrence_rule

* use habitica daystart and account for isDue flag

* yesterdaily is still an active event

* Fix yesterdailies and add attribute

* Update snapshot

* Use iter, return attribute with None value

* various changes

* update snapshot

* fix merge error

* update snapshot

* change date range filtering for todos

* use datetimes instead of date in async_get_events

* Sort events

* Update snapshot

* add method for todos

* filter for upcoming events

* dailies

* refactor todos

* update dailies logic

* dedent loops
2024-10-29 20:53:49 -07:00

730 lines
21 KiB
Text

# serializer version: 1
# name: test_api_events[calendar.test_user_dailies]
list([
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-22',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-21',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-09-22',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-09-21',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-23',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-22',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-23',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-22',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-09-23',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-09-22',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-24',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-23',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-24',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-23',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-25',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-24',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-25',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-24',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-26',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-25',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-26',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-25',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-09-26',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-09-25',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-27',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-26',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-27',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-26',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-28',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-27',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-28',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-27',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-29',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-28',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-29',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-28',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-09-29',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-09-28',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-09-30',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-29',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-09-30',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-29',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-09-30',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-09-29',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-01',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-30',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-01',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-09-30',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-02',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-01',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-02',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-01',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-03',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-02',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-03',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-02',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-10-03',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-10-02',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-04',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-03',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-04',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-03',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-05',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-04',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-05',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-04',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-06',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-05',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-06',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-05',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-10-06',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-10-05',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-07',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-06',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-07',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-06',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
dict({
'description': 'Ein einstündiges Workout im Fitnessstudio absolvieren.',
'end': dict({
'date': '2024-10-07',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=WE,SA,SU',
'start': dict({
'date': '2024-10-06',
}),
'summary': 'Fitnessstudio besuchen',
'uid': '2c6d136c-a1c3-4bef-b7c4-fa980784b1e1',
}),
dict({
'description': 'Klicke um Änderungen zu machen!',
'end': dict({
'date': '2024-10-08',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-07',
}),
'summary': 'Zahnseide benutzen',
'uid': '564b9ac9-c53d-4638-9e7f-1cd96fe19baa',
}),
dict({
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end': dict({
'date': '2024-10-08',
}),
'location': None,
'recurrence_id': None,
'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU',
'start': dict({
'date': '2024-10-07',
}),
'summary': '5 Minuten ruhig durchatmen',
'uid': 'f2c85972-1a19-4426-bc6d-ce3337b9d99f',
}),
])
# ---
# name: test_api_events[calendar.test_user_to_do_s]
list([
dict({
'description': 'Strom- und Internetrechnungen rechtzeitig überweisen.',
'end': dict({
'date': '2024-09-01',
}),
'location': None,
'recurrence_id': None,
'rrule': None,
'start': dict({
'date': '2024-08-31',
}),
'summary': 'Rechnungen bezahlen',
'uid': '2f6fcabc-f670-4ec3-ba65-817e8deea490',
}),
dict({
'description': 'Den Ausflug für das kommende Wochenende organisieren.',
'end': dict({
'date': '2024-09-22',
}),
'location': None,
'recurrence_id': None,
'rrule': None,
'start': dict({
'date': '2024-09-21',
}),
'summary': 'Wochenendausflug planen',
'uid': '86ea2475-d1b5-4020-bdcc-c188c7996afa',
}),
dict({
'description': 'Das Buch, das du angefangen hast, bis zum Wochenende fertig lesen.',
'end': dict({
'date': '2024-09-28',
}),
'location': None,
'recurrence_id': None,
'rrule': None,
'start': dict({
'date': '2024-09-27',
}),
'summary': 'Buch zu Ende lesen',
'uid': '88de7cd9-af2b-49ce-9afd-bf941d87336b',
}),
])
# ---
# name: test_calendar_platform[calendar.test_user_dailies-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'calendar',
'entity_category': None,
'entity_id': 'calendar.test_user_dailies',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Dailies',
'platform': 'habitica',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': <HabiticaCalendar.DAILIES: 'dailys'>,
'unique_id': '00000000-0000-0000-0000-000000000000_dailys',
'unit_of_measurement': None,
})
# ---
# name: test_calendar_platform[calendar.test_user_dailies-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'all_day': True,
'description': 'Klicke um Deinen Terminplan festzulegen!',
'end_time': '2024-09-22 00:00:00',
'friendly_name': 'test-user Dailies',
'location': '',
'message': '5 Minuten ruhig durchatmen',
'start_time': '2024-09-21 00:00:00',
'yesterdaily': False,
}),
'context': <ANY>,
'entity_id': 'calendar.test_user_dailies',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---
# name: test_calendar_platform[calendar.test_user_to_do_s-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'calendar',
'entity_category': None,
'entity_id': 'calendar.test_user_to_do_s',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': "To-Do's",
'platform': 'habitica',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': <HabiticaCalendar.TODOS: 'todos'>,
'unique_id': '00000000-0000-0000-0000-000000000000_todos',
'unit_of_measurement': None,
})
# ---
# name: test_calendar_platform[calendar.test_user_to_do_s-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'all_day': True,
'description': 'Den Ausflug für das kommende Wochenende organisieren.',
'end_time': '2024-09-22 00:00:00',
'friendly_name': "test-user To-Do's",
'location': '',
'message': 'Wochenendausflug planen',
'start_time': '2024-09-21 00:00:00',
}),
'context': <ANY>,
'entity_id': 'calendar.test_user_to_do_s',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---