Skip to content
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

Add initial test suite for arcam_fmj integration #29335

Merged
merged 3 commits into from Dec 3, 2019

Conversation

@elupus
Copy link
Contributor

elupus commented Dec 3, 2019

Description:

Add an initial test suite for arcam_fmj integration.

Checklist:

  • The code change is tested and works locally.
  • Local tests pass with tox. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist

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. Update and include derived files by running python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
  • Untested files have been added to .coveragerc.

If the code does not interact with devices:

  • Tests have been added to verify that the new code works.
elupus added 2 commits Jul 8, 2019
@project-bot project-bot bot added this to Needs review in Dev Dec 3, 2019
@balloob
balloob approved these changes Dec 3, 2019
Dev automation moved this from Needs review to Reviewer approved Dec 3, 2019
@balloob balloob merged commit 26b63e7 into home-assistant:dev Dec 3, 2019
11 checks passed
11 checks passed
CI #20191203.10 succeeded
Details
CI (FullCheck Mypy) FullCheck Mypy succeeded
Details
CI (FullCheck Pylint) FullCheck Pylint succeeded
Details
CI (Overview CheckFormat) Overview CheckFormat succeeded
Details
CI (Overview Lint) Overview Lint succeeded
Details
CI (Overview Validate) Overview Validate succeeded
Details
CI (Tests PyTest Python36) Tests PyTest Python36 succeeded
Details
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
Details
cla-bot Everyone involved has signed the CLA
codecov/patch Coverage not affected.
Details
codecov/project 94.44% (target 90%)
Details
Dev automation moved this from Reviewer approved to Done Dec 3, 2019
Copy link
Member

MartinHjelmare left a comment

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

This comment has been minimized.

Copy link
@MartinHjelmare

MartinHjelmare Dec 3, 2019

Member

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.

This comment has been minimized.

Copy link
@elupus

elupus Dec 3, 2019

Author Contributor

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.

This comment has been minimized.

Copy link
@MartinHjelmare

MartinHjelmare Dec 3, 2019

Member

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()

This comment has been minimized.

Copy link
@MartinHjelmare

MartinHjelmare Dec 3, 2019

Member

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.

@elupus elupus mentioned this pull request Dec 3, 2019
5 of 9 tasks complete
@lock lock bot locked and limited conversation to collaborators Dec 4, 2019
@elupus elupus deleted the elupus:arcam_test branch Jan 2, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Dev
  
Done
4 participants
You can’t perform that action at this time.