MatthewFlamm / pytest-homeassistant-custom-component

Package to automatically extract testing plugins from Home Assistant for custom component testing
MIT License
66 stars 10 forks source link

Using mock custom components from core #170

Open ScottG489 opened 10 months ago

ScottG489 commented 10 months ago

Core has a variety of components mocked out so entities can be created and and interacted with in tests.

Would we ever consider including these mocks into this project so they can be used in custom component tests?

I believe this is somewhat what we're already doing for recorder, but I could be misunderstanding what that's here for exactly.

I think my use case is somewhat unusual since I'm writing an integration that focuses on automation logic that interacts with other different components, whereas typically a custom component would only care about it's own domain. So I'd be interested in hearing your thoughts.

ScottG489 commented 10 months ago

Another option may be to allow devs to add these mocked custom components themselves. Although it could be beneficial to keep them synced with core, at least this way we could just write our own test custom components.

I think this could be done by overriding how get_test_config_dir() works which currently points to somewhere in the phacc dependency dir (i.e. [...]/site-packages/pytest_homeassistant_custom_component/testing_config) which obviously doesn't exist. Instead it could point to somewhere in the custom component's project such as tests/testing_config.

MatthewFlamm commented 7 months ago

If all we have to do is copy over the entire testing_config folder, then this sounds fairly easy. We need part of that folder now anyway since the top level testing code now imports from within that structure.