-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
Add initial test suite for arcam_fmj integration 10000 #29335
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
Conversation
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.
Please rewrite the tests to avoid interacting directly with the entity.
|
||
async def test_properties(player, state): | ||
"""Test standard properties.""" | ||
assert player.unique_id is None |
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.
We shouldn't assert anything about the entity directly. We should always use a core representation of the entity state or its attributes. Normally this is the state of the entity in the state machine, in some cases we need to check the entity registry entry of the entity.
Writing the tests like this will make them more robust for changes in the platform.
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'll see if i can rewrite it. I somewhat disagree on the change thou. Now it's unit testing, if run it through core, it's integration testing.
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.
Yes. The unit testing isn't helpful since we only care about state consistency. The entity implementation should be able to change as long as the state remains the same.
def player_fixture(hass, state): | ||
"""Get standard player.""" | ||
player = ArcamFmj(state, MOCK_NAME, None) | ||
player.async_schedule_update_ha_state = Mock() |
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.
Please set up the component and platform via core interfaces and let the platform add an entity. Use the device callback to trigger an entity update.
Description:
Add an initial test suite for arcam_fmj integration.
Checklist:
tox
. Your PR cannot be merged unless tests passIf user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
python3 -m script.hassfest
.requirements_all.txt
by runningpython3 -m script.gen_requirements_all
..coveragerc
.If the code does not interact with devices: