-
-
Notifications
You must be signed in to change notification settings - Fork 34.1k
Record current IQS for NextDNS #146895
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
base: dev
Are you sure you want to change the base?
Record current IQS for NextDNS #146895
Conversation
022e276
to
07801b7
Compare
@@ -0,0 +1,88 @@ | |||
rules: |
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.
Why don't we make the coordinator update interval a property of the class? This way you don't have to pass it as parameter. I do the same in withings
@@ -0,0 +1,88 @@ | |||
rules: |
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.
switch can also use a property for is_on
log-when-unavailable: done | ||
parallel-updates: done | ||
reauthentication-flow: done | ||
test-coverage: done |
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.
Possible improvement: we can patch out the NextDns object instead and patch every function. This way we make sure we never use a socket in a test
log-when-unavailable: done | ||
parallel-updates: done | ||
reauthentication-flow: done | ||
test-coverage: done |
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.
Let's also use the freezer
to skip time in the tests
log-when-unavailable: done | ||
parallel-updates: done | ||
reauthentication-flow: done | ||
test-coverage: done |
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.
test_button_press
instead freeze time for example with @pytest.mark.freeze_time("2023-10-21")
log-when-unavailable: done | ||
parallel-updates: done | ||
reauthentication-flow: done | ||
test-coverage: done |
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.
I would argue that test_auth_error
belongs in test_init as it tests the runtime and not the coordinator specifically (Which we shouldn't do)
log-when-unavailable: done | ||
parallel-updates: done | ||
reauthentication-flow: done | ||
test-coverage: done |
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.
test_config_not_ready
can use the mock config entry, test_config_auth_failed
as well
log-when-unavailable: done | ||
parallel-updates: done | ||
reauthentication-flow: done | ||
test-coverage: done |
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.
test_availability
We already test the state in the snapshot tests, so I think this is neater to just create 1 list with all entity ids and iterate over it to check if it's not unavailable, then fail update, then iterate again to see its unavailable. etc. this way we don't have to test on the real value and make the test shorter
log-when-unavailable: done | ||
parallel-updates: done | ||
reauthentication-flow: done | ||
test-coverage: done |
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.
test_nextdns_system_health_fail
why do we check if something is a coroutine
docs-known-limitations: | ||
status: done | ||
comment: No known limitations. |
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.
let's mention this explicitly
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
Breaking change
Proposed change
Bronze
action-setup
- Service actions are registered in async_setupappropriate-polling
- If it's a polling integration, set an appropriate polling intervalbrands
- Has branding assets available for the integrationcommon-modules
- Place common patterns in common modulesconfig-flow-test-coverage
- Full test coverage for the config flowconfig-flow
- Integration needs to be able to be set up via the UIdata_description
to give context to fieldsConfigEntry.data
andConfigEntry.options
correctlydependency-transparency
- Dependency transparencydocs-actions
- The documentation describes the provided service actions that can be useddocs-high-level-description
- The documentation includes a high-level description of the integration brand, product, or servicedocs-installation-instructions
- The documentation provides step-by-step installation instructions for the integration, including, if needed, prerequisitesdocs-removal-instructions
- The documentation provides removal instructionsentity-event-setup
- Entity events are subscribed in the correct lifecycle methodsentity-unique-id
- Entities have a unique IDhas-entity-name
- Entities use has_entity_name = Trueruntime-data
- Use ConfigEntry.runtime_data to store runtime datatest-before-configure
- Test a connection in the config flowtest-before-setup
- Check during integration initialization if we are able to set it up correctlyunique-config-entry
- Don't allow the same device or service to be able to be set up twiceSilver
action-exceptions
- Service actions raise exceptions when encountering failuresconfig-entry-unloading
- Support config entry unloadingdocs-configuration-parameters
- The documentation describes all integration configuration optionsdocs-installation-parameters
- The documentation describes all integration installation parametersentity-unavailable
- Mark entity unavailable if appropriateintegration-owner
- Has an integration ownerlog-when-unavailable
- If internet/device/service is unavailable, log once when unavailable and once when back connectedparallel-updates
- Number of parallel updates is specifiedreauthentication-flow
- Reauthentication needs to be available via the UItest-coverage
- Above 95% test coverage for all integration modulesGold
devices
- The integration creates devicesdiagnostics
- Implements diagnosticsdiscovery-update-info
- Integration uses discovery info to update network informationdiscovery
- Devices can be discovereddocs-data-update
- The documentation describes how data is updateddocs-examples
- The documentation provides automation examples the user can use.docs-known-limitations
- The documentation describes known limitations of the integration (not to be confused with bugs)docs-supported-devices
- The documentation describes known supported / unsupported devicesdocs-supported-functions
- The documentation describes the supported functionality, including entities, and platformsdocs-troubleshooting
- The documentation provides troubleshooting informationdocs-use-cases
- The documentation describes use cases to illustrate how this integration can be useddynamic-devices
- Devices added after integration setupentity-category
- Entities are assigned an appropriate EntityCategoryentity-device-class
- Entities use device classes where possibleentity-disabled-by-default
- Integration disables less popular (or noisy) entitiesentity-translations
- Entities have translated namesexception-translations
- Exception messages are translatableicon-translations
- Entities implement icon translationsreconfiguration-flow
- Integrations should have a reconfigure flowrepair-issues
- Repair issues and repair flows are used when user intervention is neededstale-devices
- Stale devices are removedPlatinum
async-dependency
- Dependency is asyncinject-websession
- The integration dependency supports passing in a websessionstrict-typing
- Strict typingType 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
.To help with the load of incoming pull requests: