Commit Graph
81 Commits
Author SHA1 Message Date
Allen Porter c8ea264db8 Bump gcal_sync to 0.7.0 (#71116) 2022-04-30 19:33:30 +03:00
GitHub Action 348016dbbf [ci skip] Translation update 2022-04-29 00:22:21 +00:00
Allen Porter 474087bf7d Bump gcal_sync 0.6.3 to fix calendar path encoding bug (#70959) 2022-04-27 21:17:25 -07:00
Allen PorterandMartin Hjelmare 8a13c6744a Bump gcal_sync to 0.6.2 and switch to google calendar async iterator api (#70616)
* Switch to google calendar async iterator api

* Update homeassistant/components/google/calendar.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Add test coverage for paging through results

* Bump gcal_sync to 0.6.1

* Bump gcal-sync 0.6.2

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-27 07:22:15 -07:00
Allen PorterandMartin Hjelmare 0e0c0ce22b Move google calendar integration to aiohttp (#70173)
* Use new aiohttp based google client library in gcal_sync.

* Use base url in tests for shorter string

* Remove unnecessary line of code

* Jump to gcal-sync-0.4.1

* Update tests/components/google/conftest.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update to gcal_sync 0.5.0 incorporating PR feedback

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-20 20:18:24 -07:00
Allen Porter 36bb947cdf Fix bug in google calendar offset calculation (#70024)
Move the offset reached computation outside of the update method so that it is
computed when state updates occur rather than when data refreshes happen (which
are throttled and happen at most every 15 minutes).

Issue #69892
2022-04-13 19:04:59 -07:00
Allen Porter 2543f18e70 Fix google calendar timestamp out of range (#69863) 2022-04-11 20:02:22 +02:00
Allen PorterandMartin Hjelmare f99b6004ea Cleanup calendar APIs and introduce a dataclass for representing events (#68843)
* Introduce data class to hold calendar event data

* Rename CalendarEventDevice to CalendarEntity

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Fix docstring on google calendar api conversion function.

* Update todoist to new calendar enttiy api, tested manually

* Add back old API for a legacy compatibility layer

* Add deprecation warning for old calendar APIs

* Fix deprecation warning

* Fix merge for missing summary #69520

* Add mypy typing for newly introduced classes

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-10 12:04:07 -07:00
Allen PorterandMartin Hjelmare a063f55c82 Handle expired credentials in reauth in google calendar initialization (#69772)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-09 23:01:48 -07:00
Allen PorterandMartin Hjelmare 06d2aeec6b Refresh google calendar tokens with invalid expiration times (#69679)
* Refresh google calendar tokens with invalid expiration times

* Update tests/components/google/conftest.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Remove unnecessary async methods in functions being touched already

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-08 20:27:58 -07:00
Allen Porter 1cce0a5744 Fix bugs calendar oauth token date handling (#69641) 2022-04-07 21:53:30 -07:00
Allen Porter 10a1b1f734 Gracefully handle empty summary in google calendar (#69520)
Gracefully handle empty summary in google calendar matching the old behavior
before some code cleanup.
2022-04-07 08:26:07 +02:00
Allen Porter c07100e519 Move Local OAuth http endpoint registration to auth component (#69507) 2022-04-06 22:34:31 -07:00
Allen Porter 3c478c312a Fix google calendar blocking call, running outside of executor (#68948) 2022-03-31 13:22:33 +02:00
epenet e362871499 Prettify json (strings.json) (#68885) 2022-03-30 10:35:30 +02:00
Allen Porter f61c911174 Remove some offset complexity from calendar event (#68724)
Simplify the calendar offset calculations to no longer update the event dictionary
using extra fields. calculate_offset is renamed to extract_offset and the integration
is responsible for overwriting the summary text.

This is in prepration for:
- Improved calendar event typing, removing unnecessary offset_reached field
- Calendar triggers which will remove offsets anyway
2022-03-27 10:02:19 -07:00
Marc Mueller 911b159281 Cleanup after pylint update (#68657) 2022-03-26 00:34:12 +01:00
Allen PorterandMartin Hjelmare 7876ffe9e3 Update google calendar integration with a config flow (#68010)
* Convert google calendar to config flow and async

* Call correct exchange method

* Fix async method and reduce unnecessary diffs

* Wording improvements

* Reduce unnecessary diffs

* Run load/update config from executor

* Update homeassistant/components/google/calendar.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Remove unnecessary updating of unexpected multiple config entries.

* Remove unnecessary unique_id checks

* Improve readability with comments about device code expiration

* Update homeassistant/components/google/calendar.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/google/calendar.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/google/api.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Add comment for when code is none on timeout

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-15 07:51:02 +01:00
Allen Porter 8adcd10f55 Make google calendar loading API centric, not loading from yaml (#67722)
* Make google calendar loading API centric, not loading from yaml

Update the behavior for google calendar to focus on loading calendars based on the
API and using the yaml configuration to override behavior. The old behavior was
to first load from yaml, then also load from the API, which is atypical.

This is pulled out from a larger change to rewrite calendar using async and config
flows.

Tests needed to be updated to reflect the new API centric behavior, and changing
the API call ordering required changing tests that exercise failures.

* Update to use async_fire_time_changed to invoke updates
2022-03-08 21:56:49 +01:00
Allen Porter 74c339eb7b Simplify google calendar new calendar tracking (#67772)
* Simplify google calendar new calendar tracking

* Remove application of CONFIG_SCHEMA
2022-03-07 09:44:32 +01:00
Allen Porter a8842d3636 Bump httplib2 to 0.20.4 (#67552) 2022-03-03 15:22:11 -08:00
Allen Porter c456b4c646 Fix google calendar comment typo (#67389) 2022-02-28 18:52:52 +01:00
Allen Porter a375a4e16e Fix recurring events in google calendar (#67355) 2022-02-27 19:56:24 -08:00
Allen Porter afaaabd2fe Cleanup google calendar by removing some device abstractions (#67356)
* Remove unnecessary abstraction in google calendar

* Simplify diffs for calendar event filtering
2022-02-27 15:01:54 -08:00
Allen Porter deda9e38e4 Simplify google calendar API interactions (#67319)
* Simplify google calendar APIs and tests

* Simplify authentication logic at startup

* Improve readability of diffs

* Reduce diffs

* Simplify api datetime logic

* Remove duplicate test fixtures added in prior commit

* Remove duplicate event filter calls

* Fix event list argument names

* More improvements found from additional testing

* Remove unnecessary variables in create event call
2022-02-26 16:19:45 -08:00
Allen Porter 1383034df2 Simplify google calendar event filters (#67312)
Simplify google calendar event filtering logic currently copied between two methods.
2022-02-26 15:27:08 -08:00
Allen Porter 0e74184e4f Simplify google calendar authentication setup (#67314)
Simplify google calendar authentication to combine some of the cases together, and reduce unecessarily checks. Make the
tests share common authentication setup and reduce use of mocks by introducing a fake for holding on to credentials.
This makes future refactoring simpler, so we don't have to care as much about the interactions with the credentials
storage.
2022-02-26 15:17:02 -08:00
Allen Porter 648aa0cae6 Reduce google calendar test flake (#67310) 2022-02-26 13:23:11 -08:00
Allen Porter 1ee4f47f8b Cleanup google calendar use of hass.data (#67305)
Update google calendar's use of hass.data to follow the best practices of storing
data under hass.data[DOMAIN]. This is in preparation for storing additional
data later, pulled out of a larger cleanup.
2022-02-26 12:30:04 -08:00
Allen Porter 1cc4ae2bdd Bump googel-api-python-client to 2.3.8 (last updated 2017) (#67298) 2022-02-26 19:47:42 +01:00
Allen Porter f901c61d54 Add myself as code owner for google calendar integration (#67299) 2022-02-26 17:55:46 +01:00
Allen PorterandMartin Hjelmare d3374ecd8e Add type hints for google calendar integration (#65353)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-02-01 17:28:32 +01:00
Allen PorterandMartin Hjelmare 88ed2f3b3e Improve google calendar test coverage to 97% (#65223)
* Improve google calendar test coverage to 97%

* Remove commented out code.

* Remove unnecessary (flaky) checks for token file persistence

* Remove mock code assertions

* Add debug logging to google calendar integration

* Increase alarm time to polling code to reduce flakes

* Setup every test in their own configuration directory

* Mock out filesystem calls to avoid disk dependencies

Update scope checking code to use Storage object rather than text file matching

* Update tests to check entity states when integration is loaded

* Mock out google service in multiple locations

* Update homeassistant/components/google/__init__.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/google/__init__.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-02-01 03:14:49 +01:00
J. Nick Koston 5b755b74fb Add loggers to integration manifest.json (#65083) 2022-01-28 13:37:53 -08:00
Marc Mueller 84552d2406 Upgrade oauth2client to 4.1.3 (#64044) 2022-01-13 14:04:52 +01:00
Erik Montnemery 2eab3c8de1 Import persistent notification (part 3) (#63900) 2022-01-11 09:51:16 -08:00
epenet c7cb26cbab Use Platform enum in load_platform [a-l] (#63750) 2022-01-10 10:30:47 +01:00
epenetandepenet ce6206b422 Add calendar setup type hints (#63272)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-03 13:14:02 +01:00
epenetandepenet d57c54c93e Add init type hints [f-g] (#63186)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-01 13:38:11 -08:00
epenetandepenet f724aea0bb Ensure service calls are typed [a-j] (#63013)
* Ensure service calls are typed [a-j]

* Adjust apns

* Adjust arlo

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-30 18:50:51 +01:00
Allen Porter 23277181ca Increase test coverage for google calendar (#62648)
* Increase test coverage for google calendar

Update tests to exercise the API responses, getting test coverage
to 97% for calendar.py

----------- coverage: platform linux, python 3.9.6-final-0 -----------
Name                                          Stmts   Miss  Cover   Missing
---------------------------------------------------------------------------
homeassistant/components/google/__init__.py     193     84    56%   92, 163-228, 238, 244-247, 254-262, 274, 298-299, 305-347, 387-392, 416-430, 435-437
homeassistant/components/google/calendar.py     122      4    97%   41, 45, 51, 135
---------------------------------------------------------------------------
TOTAL                                           315     88    72%

* Revert conftest changes

* Update typing errors found on CI

* Update python3.8 typing imports

* Remove commented out code
2021-12-23 07:31:56 +01:00
Marc Mueller be201e3ebe Use assignment expressions 27 (#58188) 2021-10-22 11:29:21 +02:00
Sebastian Lövdahl 9633b9fe6e Fix Google Calendar auth user code expire time comparison (#54893)
Fixes #51490.
2021-08-20 22:12:10 +02:00
Bert Roos 476f3b5cb5 Fix Google Calendar event loading (#54231) 2021-08-16 20:20:16 -07:00
Marc Mueller 10bfc78365 Fix missing encoding with open() (#53593)
* Fix missing encoding with open()

* Fix tests

* Improve open - frontend
2021-07-28 09:41:45 +02:00
David Kendall f3ba71748b Feature/google calendar read only support (#52790)
* feat(google): Added support for read only access in google calendar.

By default the current read/write access will be given, but the user has the option to set read only access which stops the add event service from registering

* fix(google): Updated documentation link

* docs(google-calendar): Added style fixes

* feat(calendar-google): Updated scopes to be defined on enum property.

This was done as a MR suggestion to simplify the code.

* feat(calendar-google):Removed constants no longer needed.

* feat(calendar-google): Reduced scope check to minimum.

* style: Fixed style issues
2021-07-25 12:33:21 -07:00
Daniel Hjelseth HøyerandMarc Mueller fbad453c89 Pylint 2.9.3 (#52972)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2021-07-14 21:44:57 -07:00
tkdrob 883513e089 Add selectors to google services (#49796) 2021-04-28 19:58:53 +02:00
Franck Nijhof 055cdc64c0 Add support for IoT class in manifest (#46935) 2021-04-15 10:21:38 +02:00
Erik Montnemery af4d06b12e Update integrations f-i to override extra_state_attributes() (#47757) 2021-03-11 16:57:47 +01:00