New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mock dwdwfsapi in all tests that use it #116414
Conversation
Hey there @runningman84, @stephan192, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
mock_dwdwfsapi.__bool__.return_value = True | ||
result = await hass.config_entries.flow.async_configure( | ||
result["flow_id"], user_input=DEMO_CONFIG_ENTRY_GPS | ||
) | ||
|
||
await hass.async_block_till_done() | ||
assert result["type"] == FlowResultType.CREATE_ENTRY |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
assert result["type"] == FlowResultType.CREATE_ENTRY | |
assert result["type"] is FlowResultType.CREATE_ENTRY |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated in f3c37a8
entry = MockConfigEntry(domain=DOMAIN, data=DEMO_IDENTIFIER_CONFIG_ENTRY) | ||
entry.add_to_hass(hass) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would also be nice to have the mock config entry as a fixture and the setup as a function to reduce code duplication, checkout epion or analytics insights for examples
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about mock config entries that are unique to the specific test? Two of those don't use the usual mock data, I'd think keeping those in the function is cleaner.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated in f3c37a8
I've not used the setup function in the last two init tests as there additional logic between the add_to_hass
and async_setup
that's specific to the test
await hass.async_block_till_done() | ||
assert entry.state == ConfigEntryState.SETUP_RETRY | ||
assert mock_tracker_entry.state == ConfigEntryState.SETUP_RETRY |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated in e3a1f11
await hass.async_block_till_done() | ||
|
||
assert entry.state == ConfigEntryState.LOADED | ||
assert entry.entry_id in hass.data[DOMAIN] | ||
assert mock_tracker_entry.state == ConfigEntryState.LOADED |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated in e3a1f11
Proposed change
I've been messaged about flaky tests in
dwd_weather_warnings
where the API is used. This should eliminate the need for external API access in the tests by using a fixture. The patches in theconfig_flow
tests have been replaced accordingly.Type of change
Additional information
Checklist
ruff format homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
..coveragerc
.To help with the load of incoming pull requests: