* Make google calendar fail louder on invalid google_calendars.yaml
* Update homeassistant/components/google/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/google/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Sync google calendar and serve from local storage
Update to use new gcal_sync APIs
Update google calendar filter logic
Remove storage on config entry removal
Make timeline queries timezone aware
Do not block startup while syncing
* Minor readability tweaks
* Remove unnecessary args to async_add_entities
* Change how task is created on startup
* Update homeassistant/components/google/calendar.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Revert min time between updates
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Support multiple config entries at once
* Add test coverage for multiple config entries
* Add support for multiple config entries to google config flow
* Clear hass.data when unloading config entry
* Make google config flow defensive against reuse of the same account
* Assign existing google config entries a unique id
* Migrate entities to new unique id format
* Support muliple accounts per oauth client id
* Fix mypy typing errors
* Hard fail to keep state consistent, removing graceful degredation
* Remove invalid entity regsitry entries
* Deprecate google calendar add_event service, replaced with entity service
* Fix inconsistencies and bugs in input validation
* Update validation rules and exceptions
* Resolve merge conflicts
* Stop updating google_calendars.yaml if it does not already exist
* Add additional test coverage to make CI pass
* Add test for no updates to google_calendar.yaml
* Add parameter to test for expecting write calls
* Missing call argument
* Remove conditional and replace with inline assert
* Add google application_credentials platform
* Further simplify custom auth implementation overrides
* Add test coverage in application_credentials
* Simplify wording in a comment
* Remove unused imports accidentally left from merge
* Wrap lines that are too long for style guide
* Move application credential loading to only where it is needed
* Leave CLIENT_ID and CLIENT_SECRET as required.
* Prepare google calendar integration for Application Credentials
Update google calendar integration to have fewer dependencies on
yaml configuration data to prepare for supporting application
credentials, which means setup can happen without configuration.yaml
at all. This pre-factoring will allow the following PR adding
application credentials support to be more focused.
* Add test coverage for device auth checks
* 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>
* 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>
* 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
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.
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.
* 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>
* 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
* Use CONF_CLIENT_ID & CONF_CLIENT_SECRET from homeassistant.const
* Fix pylint
* Use in tests
* Search for "client_id"
* Fix tests
* Fix test
* Fix test