core icon indicating copy to clipboard operation
core copied to clipboard

Allow to use multiple accounts with ViCare integration

Open CFenner opened this issue 5 months ago • 7 comments

Proposed change

This allows to add different Viessmann accounts to the integration.

Bildschirmfoto 2024-01-26 um 00 51 26

To support multiple accounts, the token is no longer saved in /config/.storage/vicare-token.save but in /config/.storage/vicare.<config_entry_id>. A migration step has been provided.

Type of change

  • [ ] Dependency upgrade
  • [ ] Bugfix (non-breaking change which fixes an issue)
  • [ ] New integration (thank you!)
  • [x] New feature (which adds functionality to an existing integration)
  • [ ] Deprecation (breaking change to happen in the future)
  • [ ] Breaking change (fix/feature causing existing functionality to break)
  • [ ] Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue: https://community.home-assistant.io/t/more-than-one-viessmann-integration/463117
  • Link to documentation pull request:

Checklist

  • [x] The code change is tested and works locally.
  • [x] Local tests pass. Your PR cannot be merged unless tests pass
  • [x] There is no commented out code in this PR.
  • [x] I have followed the development checklist
  • [x] I have followed the perfect PR recommendations
  • [x] The code has been formatted using Ruff (ruff format homeassistant tests)
  • [ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • [ ] The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • [ ] New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
  • [ ] Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

CFenner avatar Jan 26 '24 22:01 CFenner

Fixed circular import with https://github.com/home-assistant/core/pull/108929/commits/737336d1df02b23759d0edbe7d8e87b1e49f3605.

CFenner avatar Feb 09 '24 12:02 CFenner

@emontnemery @edenhaus The build is failing with a type error unrelated to the changes. Can you assist in solving this?

CFenner avatar Apr 18 '24 07:04 CFenner

@emontnemery @edenhaus The build is failing with a type error unrelated to the changes. Can you assist in solving this?

The mypy error is not unrelated. Your PR changes the signature of homeassistant.components.vicare.vicare_login, but you've not updated the existing calls to the vicare_login from the reauth flow according to the new signature.

The reason this is not caught in tests is that the config flow tests tests patch vicare_login instead of patching the PyViCare API. Please update the config flow tests to patch the API, that should preferably be done in a separate PR which is merged before this PR.

emontnemery avatar Apr 22 '24 08:04 emontnemery

Please hit the "Ready for review"-button when CI passes

emontnemery avatar Apr 22 '24 08:04 emontnemery

🤦‍♂️ sorry, this is clear, I was looking at a polluted workspace.

I will have a look at the tests and try to fix this.

CFenner avatar Apr 22 '24 14:04 CFenner

This PR adds additional config flow tests which mocks homeassistant.components.vicare.vicare_login which is not great. I really think we should first merge a PR which replaces the mock of homeassistant.components.vicare.vicare_login with mocking the API. It could also all happen in this PR if the changes are very small.

emontnemery avatar Apr 23 '24 10:04 emontnemery

@emontnemery I failed trying to change this, sorry. No idea what to do about this now.

CFenner avatar May 09 '24 18:05 CFenner