* Add Picnic services for searching products and adding products to the cart
* Improve the Picnic services implementation and add unit tests
* Fix pre-commit check issues
* Fix comments and example product name
* Remove search service, update add_product service schema
* Fix pylint suggestion
* Add more tests and removed unused code
* Remove code needed for the removed service, clean tests from obvious comments and add type hints
* Remove unused import
* Remove unnecessary comments and simplify getting the config entry id
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Don't use hass.data in tests, make device id mandatory for service
* Rewrite all service tests so using lru.cache is not needed
* Add test for uncovered line in _product_search()
* Require a config entry id as service parameter instead of device id
* Use explicit check in get_api_client() and raise HomeAssistantError
* Fix HomeAssistantError import, fix services tests
* Change HomeAssistantError to ValueError when config entry is not found
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Add re-auth handler for Picnic
* Extracted authentication part so right form/errors can be shown during re-auth flow
* Add tests for Picnic's re-authentication flow
* Simplify re-auth flow by using the same step as step_user
* Use user step also for re-auth flow instead of having an authenticate step
* Add check for when re-auth is done with different account
* Remove unnecessary else in Picnic config flow
* Fix the step id in the translation strings file