>>> make pytest ● Executing pytest in enhomie.. ============================= test session starts ============================== platform linux -- Python 3.12.11, pytest-8.4.1, pluggy-1.6.0 -- /home/runner/work/enhomie/enhomie/main/.venv-package/bin/python3 cachedir: .pytest_cache Using --randomly-seed=1378295940 rootdir: /home/runner/work/enhomie/enhomie/main configfile: pyproject.toml plugins: cov-6.2.1, mypy-1.0.1, xdist-3.8.0, sphinx-0.6.3, randomly-3.16.0, anyio-4.9.0, clarity-1.0.1, respx-0.22.0 created: 4/4 workers 4 workers [120 items] scheduling tests via LoadScheduling enhomie/utils/test/test_child.py::test_InvalidChild_cover enhomie/homie/test/test_models.py::test_HomieModels_cover enhomie/homie/childs/test/test_group.py::test_HomieGroup enhomie/homie/members/test/test_member.py::test_HomieMember_cover [gw2] [ 0%] PASSED enhomie/homie/test/test_models.py::test_HomieModels_cover enhomie/homie/addons/test/test_desired.py::test_HomieDesired_cover [gw0] [ 1%] PASSED enhomie/utils/test/test_child.py::test_InvalidChild_cover enhomie/utils/test/test_child.py::test_InvalidChild [gw0] [ 2%] PASSED enhomie/utils/test/test_child.py::test_InvalidChild enhomie/homie/members/test/test_streams.py::test_HomieStreams [gw3] [ 3%] PASSED enhomie/homie/members/test/test_member.py::test_HomieMember_cover enhomie/philips/test/test_surgeon.py::test_surgeon [gw1] [ 4%] PASSED enhomie/homie/childs/test/test_group.py::test_HomieGroup enhomie/ubiquiti/plugins/test/test_client.py::test_DriverUbiqClient_cover [gw3] [ 5%] PASSED enhomie/philips/test/test_surgeon.py::test_surgeon enhomie/restful/test/test_service.py::test_RestfulService [gw0] [ 5%] PASSED enhomie/homie/members/test/test_streams.py::test_HomieStreams enhomie/homie/threads/test/test_action.py::test_HomieAction [gw1] [ 6%] PASSED enhomie/ubiquiti/plugins/test/test_client.py::test_DriverUbiqClient_cover enhomie/ubiquiti/plugins/test/test_client.py::test_DriverUbiqClient [gw0] [ 7%] PASSED enhomie/homie/threads/test/test_action.py::test_HomieAction enhomie/homie/threads/test/test_action.py::test_HomieActionItem [gw1] [ 8%] PASSED enhomie/ubiquiti/plugins/test/test_client.py::test_DriverUbiqClient enhomie/builtins/test/test_store.py::test_DriverBltnStore_cover [gw0] [ 9%] PASSED enhomie/homie/threads/test/test_action.py::test_HomieActionItem enhomie/hubitat/test/test_device.py::test_HubiDevice [gw1] [ 10%] PASSED enhomie/builtins/test/test_store.py::test_DriverBltnStore_cover enhomie/builtins/test/test_store.py::test_DriverBltnStore [gw0] [ 10%] PASSED enhomie/hubitat/test/test_device.py::test_HubiDevice enhomie/homie/childs/test/test_group.py::test_HomieGroup_cover [gw2] [ 11%] PASSED enhomie/homie/addons/test/test_desired.py::test_HomieDesired_cover enhomie/homie/addons/test/test_desired.py::test_HomieDesiredItem [gw1] [ 12%] PASSED enhomie/builtins/test/test_store.py::test_DriverBltnStore enhomie/homie/threads/test/test_thread.py::test_HomieThread_cover [gw0] [ 13%] PASSED enhomie/homie/childs/test/test_group.py::test_HomieGroup_cover enhomie/homie/test/test_homie.py::test_Homie_actions [gw2] [ 14%] PASSED enhomie/homie/addons/test/test_desired.py::test_HomieDesiredItem [gw1] [ 15%] PASSED enhomie/homie/threads/test/test_thread.py::test_HomieThread_cover enhomie/homie/addons/test/test_desired.py::test_HomieDesired enhomie/homie/childs/test/test_device.py::test_HomieDevice_cover [gw0] [ 15%] PASSED enhomie/homie/test/test_homie.py::test_Homie_actions enhomie/homie/test/test_homie.py::test_Homie_printer [gw1] [ 16%] PASSED enhomie/homie/childs/test/test_device.py::test_HomieDevice_cover enhomie/restful/test/test_static.py::test_get_static [gw0] [ 17%] PASSED enhomie/homie/test/test_homie.py::test_Homie_printer enhomie/homie/test/test_homie.py::test_Homie_cover [gw0] [ 18%] PASSED enhomie/homie/test/test_homie.py::test_Homie_cover enhomie/builtins/test/test_models.py::test_BltnModels_cover [gw0] [ 19%] PASSED enhomie/builtins/test/test_models.py::test_BltnModels_cover enhomie/philips/test/test_action.py::test_PhueAction_cover [gw1] [ 20%] PASSED enhomie/restful/test/test_static.py::test_get_static enhomie/homie/members/test/test_updates.py::test_HomieUpdates [gw0] [ 20%] PASSED enhomie/philips/test/test_action.py::test_PhueAction_cover enhomie/philips/plugins/test/test_helpers.py::test_phue_changed [gw1] [ 21%] PASSED enhomie/homie/members/test/test_updates.py::test_HomieUpdates enhomie/homie/addons/test/test_queue.py::test_HomieQueue [gw0] [ 22%] PASSED enhomie/philips/plugins/test/test_helpers.py::test_phue_changed enhomie/philips/plugins/test/test_helpers.py::test_phue_sensors [gw1] [ 23%] PASSED enhomie/homie/addons/test/test_queue.py::test_HomieQueue enhomie/homie/addons/test/test_queue.py::test_HomieQueueItem [gw1] [ 24%] PASSED enhomie/homie/addons/test/test_queue.py::test_HomieQueueItem enhomie/execution/test/test_action.py::test_arguments [gw1] [ 25%] PASSED enhomie/execution/test/test_action.py::test_arguments enhomie/homie/childs/test/test_child.py::test_HomieChild_cover [gw0] [ 25%] PASSED enhomie/philips/plugins/test/test_helpers.py::test_phue_sensors enhomie/philips/plugins/test/test_helpers.py::test_phue_current [gw1] [ 26%] PASSED enhomie/homie/childs/test/test_child.py::test_HomieChild_cover enhomie/execution/test/test_config.py::test_arguments [gw1] [ 27%] PASSED enhomie/execution/test/test_config.py::test_arguments enhomie/homie/plugins/test/test_plugin.py::test_HomiePlugin_cover [gw0] [ 28%] PASSED enhomie/philips/plugins/test/test_helpers.py::test_phue_current enhomie/ubiquiti/test/test_update.py::test_UbiqUpdateItem [gw2] [ 29%] PASSED enhomie/homie/addons/test/test_desired.py::test_HomieDesired enhomie/philips/test/test_stream.py::test_PhueStream_samples [gw1] [ 30%] PASSED enhomie/homie/plugins/test/test_plugin.py::test_HomiePlugin_cover enhomie/philips/plugins/test/test_contact.py::test_DriverPhueContact_cover [gw0] [ 30%] PASSED enhomie/ubiquiti/test/test_update.py::test_UbiqUpdateItem enhomie/execution/test/test_dumped.py::test_arguments [gw0] [ 31%] PASSED enhomie/execution/test/test_dumped.py::test_arguments enhomie/homie/threads/test/test_stream.py::test_HomieStreamItem [gw2] [ 32%] PASSED enhomie/philips/test/test_stream.py::test_PhueStream_samples enhomie/philips/test/test_stream.py::test_PhueStreamItem [gw0] [ 33%] PASSED enhomie/homie/threads/test/test_stream.py::test_HomieStreamItem enhomie/homie/threads/test/test_stream.py::test_HomieStream [gw1] [ 34%] PASSED enhomie/philips/plugins/test/test_contact.py::test_DriverPhueContact_cover enhomie/philips/plugins/test/test_contact.py::test_DriverPhueContact [gw2] [ 35%] PASSED enhomie/philips/test/test_stream.py::test_PhueStreamItem enhomie/ubiquiti/plugins/test/test_helpers.py::test_ubiq_latest [gw0] [ 35%] PASSED enhomie/homie/threads/test/test_stream.py::test_HomieStream enhomie/ubiquiti/test/test_device.py::test_UbiqDevice [gw1] [ 36%] PASSED enhomie/philips/plugins/test/test_contact.py::test_DriverPhueContact enhomie/homie/childs/test/test_homie.py::test_HomieChilds_cover [gw2] [ 37%] PASSED enhomie/ubiquiti/plugins/test/test_helpers.py::test_ubiq_latest enhomie/homie/addons/test/test_logger.py::test_HomieLogger [gw0] [ 38%] PASSED enhomie/ubiquiti/test/test_device.py::test_UbiqDevice enhomie/builtins/test/test_period.py::test_DriverBltnPeriod_cover [gw1] [ 39%] PASSED enhomie/homie/childs/test/test_homie.py::test_HomieChilds_cover enhomie/homie/childs/test/test_homie.py::test_HomieChilds [gw2] [ 40%] PASSED enhomie/homie/addons/test/test_logger.py::test_HomieLogger enhomie/homie/addons/test/test_logger.py::test_HomieLogger_cover [gw0] [ 40%] PASSED enhomie/builtins/test/test_period.py::test_DriverBltnPeriod_cover enhomie/builtins/test/test_period.py::test_DriverBltnPeriod [gw1] [ 41%] PASSED enhomie/homie/childs/test/test_homie.py::test_HomieChilds enhomie/homie/addons/test/test_aspired.py::test_HomieAspiredItem [gw2] [ 42%] PASSED enhomie/homie/addons/test/test_logger.py::test_HomieLogger_cover enhomie/homie/test/test_service.py::test_HomieService_healths [gw0] [ 43%] PASSED enhomie/builtins/test/test_period.py::test_DriverBltnPeriod enhomie/execution/test/test_persist.py::test_arguments [gw0] [ 44%] PASSED enhomie/execution/test/test_persist.py::test_arguments enhomie/homie/addons/test/test_logger.py::test_HomieLogger_message [gw1] [ 45%] PASSED enhomie/homie/addons/test/test_aspired.py::test_HomieAspiredItem enhomie/homie/addons/test/test_aspired.py::test_HomieAspired [gw2] [ 45%] PASSED enhomie/homie/test/test_service.py::test_HomieService_healths enhomie/homie/test/test_service.py::test_HomieService_dryrun [gw0] [ 46%] PASSED enhomie/homie/addons/test/test_logger.py::test_HomieLogger_message enhomie/ubiquiti/test/test_models.py::test_UbiqModels_cover [gw0] [ 47%] PASSED enhomie/ubiquiti/test/test_models.py::test_UbiqModels_cover enhomie/execution/test/test_backup.py::test_arguments [gw0] [ 48%] PASSED enhomie/execution/test/test_backup.py::test_arguments enhomie/homie/plugins/test/test_driver.py::test_HomieDriver_cover [gw3] [ 49%] PASSED enhomie/restful/test/test_service.py::test_RestfulService enhomie/restful/test/test_service.py::test_RestfulService_forbid [gw1] [ 50%] PASSED enhomie/homie/addons/test/test_aspired.py::test_HomieAspired enhomie/homie/addons/test/test_aspired.py::test_HomieAspired_cover [gw0] [ 50%] PASSED enhomie/homie/plugins/test/test_driver.py::test_HomieDriver_cover enhomie/ubiquiti/test/test_origin.py::test_UbiqOrigin [gw3] [ 51%] PASSED enhomie/restful/test/test_service.py::test_RestfulService_forbid enhomie/restful/test/test_service.py::test_RestfulService_cover [gw1] [ 52%] PASSED enhomie/homie/addons/test/test_aspired.py::test_HomieAspired_cover enhomie/philips/test/test_helpers.py::test_request_action [gw0] [ 53%] PASSED enhomie/ubiquiti/test/test_origin.py::test_UbiqOrigin enhomie/ubiquiti/test/test_origin.py::test_UbiqOrigin_source [gw3] [ 54%] PASSED enhomie/restful/test/test_service.py::test_RestfulService_cover enhomie/homie/test/test_homie.py::test_Homie_jinja2 [gw0] [ 55%] PASSED enhomie/ubiquiti/test/test_origin.py::test_UbiqOrigin_source enhomie/hubitat/test/test_update.py::test_HubiUpdateItem [gw1] [ 55%] PASSED enhomie/philips/test/test_helpers.py::test_request_action enhomie/ubiquiti/test/test_origin.py::test_UbiqOrigin_update [gw3] [ 56%] PASSED enhomie/homie/test/test_homie.py::test_Homie_jinja2 enhomie/homie/test/test_homie.py::test_Homie [gw0] [ 57%] PASSED enhomie/hubitat/test/test_update.py::test_HubiUpdateItem enhomie/philips/test/test_origin.py::test_PhueOrigin_stream [gw1] [ 58%] PASSED enhomie/ubiquiti/test/test_origin.py::test_UbiqOrigin_update enhomie/hubitat/test/test_origin.py::test_HubiOrigin_source [gw3] [ 59%] PASSED enhomie/homie/test/test_homie.py::test_Homie enhomie/philips/test/test_origin.py::test_PhueOrigin_update [gw0] [ 60%] PASSED enhomie/philips/test/test_origin.py::test_PhueOrigin_stream enhomie/philips/test/test_origin.py::test_PhueOrigin [gw1] [ 60%] PASSED enhomie/hubitat/test/test_origin.py::test_HubiOrigin_source enhomie/hubitat/test/test_origin.py::test_HubiOrigin [gw3] [ 61%] PASSED enhomie/philips/test/test_origin.py::test_PhueOrigin_update enhomie/philips/test/test_origin.py::test_PhueOrigin_source [gw1] [ 62%] PASSED enhomie/hubitat/test/test_origin.py::test_HubiOrigin enhomie/hubitat/test/test_origin.py::test_HubiOrigin_update [gw0] [ 63%] PASSED enhomie/philips/test/test_origin.py::test_PhueOrigin enhomie/philips/test/test_origin.py::test_PhueOrigin_action [gw3] [ 64%] PASSED enhomie/philips/test/test_origin.py::test_PhueOrigin_source enhomie/philips/test/test_update.py::test_PhueUpdateItem [gw1] [ 65%] PASSED enhomie/hubitat/test/test_origin.py::test_HubiOrigin_update enhomie/hubitat/test/test_origin.py::test_HubiOrigin_action [gw3] [ 65%] PASSED enhomie/philips/test/test_update.py::test_PhueUpdateItem enhomie/homie/members/test/test_actions.py::test_HomieActions [gw0] [ 66%] PASSED enhomie/philips/test/test_origin.py::test_PhueOrigin_action enhomie/philips/test/test_models.py::test_PhueModels_cover [gw0] [ 67%] PASSED enhomie/philips/test/test_models.py::test_PhueModels_cover enhomie/philips/plugins/test/test_button.py::test_DriverPhueButton_cover [gw1] [ 68%] PASSED enhomie/hubitat/test/test_origin.py::test_HubiOrigin_action enhomie/philips/plugins/test/test_change.py::test_DriverPhueChange_cover [gw0] [ 69%] PASSED enhomie/philips/plugins/test/test_button.py::test_DriverPhueButton_cover enhomie/philips/plugins/test/test_button.py::test_DriverPhueButton [gw3] [ 70%] PASSED enhomie/homie/members/test/test_actions.py::test_HomieActions enhomie/homie/childs/test/test_origin.py::test_HomieOrigin_cover [gw1] [ 70%] PASSED enhomie/philips/plugins/test/test_change.py::test_DriverPhueChange_cover enhomie/execution/test/test_restful.py::test_arguments [gw1] [ 71%] PASSED enhomie/execution/test/test_restful.py::test_arguments enhomie/philips/test/test_device.py::test_PhueDevice [gw0] [ 72%] PASSED enhomie/philips/plugins/test/test_button.py::test_DriverPhueButton enhomie/homie/test/test_config.py::test_HomieConfig [gw3] [ 73%] PASSED enhomie/homie/childs/test/test_origin.py::test_HomieOrigin_cover enhomie/philips/plugins/test/test_change.py::test_DriverPhueChange [gw1] [ 74%] PASSED enhomie/philips/test/test_device.py::test_PhueDevice enhomie/homie/childs/test/test_aspire.py::test_HomieAspire [gw0] [ 75%] PASSED enhomie/homie/test/test_config.py::test_HomieConfig enhomie/homie/test/test_config.py::test_HomieConfig_cover [gw0] [ 75%] PASSED enhomie/homie/test/test_config.py::test_HomieConfig_cover enhomie/restful/test/test_persist.py::test_get_persists [gw3] [ 76%] PASSED enhomie/philips/plugins/test/test_change.py::test_DriverPhueChange enhomie/homie/childs/test/test_aspire.py::test_HomieAspire_cover [gw1] [ 77%] PASSED enhomie/homie/childs/test/test_aspire.py::test_HomieAspire enhomie/hubitat/test/test_models.py::test_HubiModels_cover [gw1] [ 78%] PASSED enhomie/hubitat/test/test_models.py::test_HubiModels_cover enhomie/philips/plugins/test/test_motion.py::test_DriverPhueMotion_cover [gw0] [ 79%] PASSED enhomie/restful/test/test_persist.py::test_get_persists enhomie/homie/childs/test/test_scene.py::test_HomieScene [gw3] [ 80%] PASSED enhomie/homie/childs/test/test_aspire.py::test_HomieAspire_cover enhomie/builtins/test/test_regexp.py::test_DriverBltnRegexp [gw1] [ 80%] PASSED enhomie/philips/plugins/test/test_motion.py::test_DriverPhueMotion_cover enhomie/philips/plugins/test/test_motion.py::test_DriverPhueMotion [gw0] [ 81%] PASSED enhomie/homie/childs/test/test_scene.py::test_HomieScene enhomie/execution/test/test_service.py::test_arguments [gw0] [ 82%] PASSED enhomie/execution/test/test_service.py::test_arguments enhomie/homie/plugins/test/test_occur.py::test_HomieOccur [gw3] [ 83%] PASSED enhomie/builtins/test/test_regexp.py::test_DriverBltnRegexp enhomie/philips/plugins/test/test_scene.py::test_DriverPhueScene [gw1] [ 84%] PASSED enhomie/philips/plugins/test/test_motion.py::test_DriverPhueMotion enhomie/philips/plugins/test/test_scene.py::test_DriverPhueScene_cover [gw0] [ 85%] PASSED enhomie/homie/plugins/test/test_occur.py::test_HomieOccur enhomie/homie/addons/test/test_persist.py::test_HomiePersist_cover [gw3] [ 85%] PASSED enhomie/philips/plugins/test/test_scene.py::test_DriverPhueScene enhomie/homie/addons/test/test_persist.py::test_HomiePersist [gw1] [ 86%] PASSED enhomie/philips/plugins/test/test_scene.py::test_DriverPhueScene_cover enhomie/hubitat/test/test_action.py::test_HubiAction_cover [gw0] [ 87%] PASSED enhomie/homie/addons/test/test_persist.py::test_HomiePersist_cover enhomie/homie/childs/test/test_desire.py::test_HomieDesire [gw3] [ 88%] PASSED enhomie/homie/addons/test/test_persist.py::test_HomiePersist enhomie/homie/childs/test/test_desire.py::test_HomieDesires_cover [gw1] [ 89%] PASSED enhomie/hubitat/test/test_action.py::test_HubiAction_cover enhomie/execution/test/test_crypts.py::test_arguments [gw1] [ 90%] PASSED enhomie/execution/test/test_crypts.py::test_arguments enhomie/homie/threads/test/test_update.py::test_HomieUpdate [gw0] [ 90%] PASSED enhomie/homie/childs/test/test_desire.py::test_HomieDesire enhomie/homie/plugins/test/test_where.py::test_HomieWhere [gw3] [ 91%] PASSED enhomie/homie/childs/test/test_desire.py::test_HomieDesires_cover enhomie/homie/threads/test/test_update.py::test_HomieUpdateItem [gw1] [ 92%] PASSED enhomie/homie/threads/test/test_update.py::test_HomieUpdate enhomie/homie/members/test/test_restful.py::test_HomieRestful [gw0] [ 93%] PASSED enhomie/homie/plugins/test/test_where.py::test_HomieWhere enhomie/hubitat/test/test_helpers.py::test_request_action [gw3] [ 94%] PASSED enhomie/homie/threads/test/test_update.py::test_HomieUpdateItem enhomie/execution/test/test_desired.py::test_arguments [gw3] [ 95%] PASSED enhomie/execution/test/test_desired.py::test_arguments [gw0] [ 95%] PASSED enhomie/hubitat/test/test_helpers.py::test_request_action [gw2] [ 96%] PASSED enhomie/homie/test/test_service.py::test_HomieService_dryrun enhomie/homie/test/test_service.py::test_HomieService [gw1] [ 97%] PASSED enhomie/homie/members/test/test_restful.py::test_HomieRestful enhomie/utils/test/test_param.py::test_InvalidParam [gw1] [ 98%] PASSED enhomie/utils/test/test_param.py::test_InvalidParam [gw2] [ 99%] PASSED enhomie/homie/test/test_service.py::test_HomieService enhomie/homie/test/test_service.py::test_HomieService_cover [gw2] [100%] PASSED enhomie/homie/test/test_service.py::test_HomieService_cover =============================== warnings summary =============================== enhomie/restful/test/test_service.py::test_RestfulService enhomie/homie/members/test/test_restful.py::test_HomieRestful /home/runner/work/enhomie/enhomie/main/.venv-package/lib/python3.12/site-packages/websockets/legacy/__init__.py:6: DeprecationWarning: websockets.legacy is deprecated; see https://websockets.readthedocs.io/en/stable/howto/upgrade.html for upgrade instructions warnings.warn( # deprecated in 14.0 - 2024-11-09 enhomie/restful/test/test_service.py::test_RestfulService enhomie/homie/members/test/test_restful.py::test_HomieRestful /home/runner/work/enhomie/enhomie/main/.venv-package/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py:17: DeprecationWarning: websockets.server.WebSocketServerProtocol is deprecated from websockets.server import WebSocketServerProtocol -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ================================ tests coverage ================================ _______________ coverage: platform linux, python 3.12.11-final-0 _______________ Name Stmts Miss Cover ------------------------------------------------------------------- enhomie/__init__.py 6 0 100% enhomie/builtins/__init__.py 5 0 100% enhomie/builtins/models.py 19 0 100% enhomie/builtins/params/__init__.py 4 0 100% enhomie/builtins/params/period.py 14 0 100% enhomie/builtins/params/regexp.py 7 0 100% enhomie/builtins/params/store.py 11 0 100% enhomie/builtins/period.py 53 0 100% enhomie/builtins/regexp.py 33 0 100% enhomie/builtins/store.py 53 0 100% enhomie/builtins/test/__init__.py 0 0 100% enhomie/builtins/test/test_models.py 7 0 100% enhomie/builtins/test/test_period.py 57 0 100% enhomie/builtins/test/test_regexp.py 30 0 100% enhomie/builtins/test/test_store.py 46 0 100% enhomie/conftest.py 59 0 100% enhomie/execution/__init__.py 0 0 100% enhomie/execution/action.py 27 0 100% enhomie/execution/backup.py 15 0 100% enhomie/execution/config.py 15 0 100% enhomie/execution/crypts.py 18 0 100% enhomie/execution/desired.py 17 0 100% enhomie/execution/dumped.py 16 0 100% enhomie/execution/persist.py 25 0 100% enhomie/execution/restful.py 19 0 100% enhomie/execution/service.py 37 0 100% enhomie/execution/test/__init__.py 0 0 100% enhomie/execution/test/test_action.py 4 0 100% enhomie/execution/test/test_backup.py 4 0 100% enhomie/execution/test/test_config.py 4 0 100% enhomie/execution/test/test_crypts.py 4 0 100% enhomie/execution/test/test_desired.py 4 0 100% enhomie/execution/test/test_dumped.py 4 0 100% enhomie/execution/test/test_persist.py 4 0 100% enhomie/execution/test/test_restful.py 4 0 100% enhomie/execution/test/test_service.py 4 0 100% enhomie/homie/__init__.py 4 0 100% enhomie/homie/addons/__init__.py 12 0 100% enhomie/homie/addons/aspired.py 80 0 100% enhomie/homie/addons/desired.py 131 0 100% enhomie/homie/addons/jinja2.py 14 0 100% enhomie/homie/addons/logger.py 72 0 100% enhomie/homie/addons/persist.py 206 0 100% enhomie/homie/addons/queue.py 34 0 100% enhomie/homie/addons/test/__init__.py 0 0 100% enhomie/homie/addons/test/test_aspired.py 74 0 100% enhomie/homie/addons/test/test_desired.py 62 0 100% enhomie/homie/addons/test/test_logger.py 43 0 100% enhomie/homie/addons/test/test_persist.py 62 0 100% enhomie/homie/addons/test/test_queue.py 27 0 100% enhomie/homie/childs/__init__.py 9 0 100% enhomie/homie/childs/aspire.py 119 0 100% enhomie/homie/childs/child.py 38 0 100% enhomie/homie/childs/desire.py 135 0 100% enhomie/homie/childs/device.py 54 0 100% enhomie/homie/childs/group.py 62 0 100% enhomie/homie/childs/helpers.py 36 0 100% enhomie/homie/childs/homie.py 227 0 100% enhomie/homie/childs/origin.py 50 0 100% enhomie/homie/childs/scene.py 56 0 100% enhomie/homie/childs/test/__init__.py 0 0 100% enhomie/homie/childs/test/test_aspire.py 49 0 100% enhomie/homie/childs/test/test_child.py 8 0 100% enhomie/homie/childs/test/test_desire.py 44 0 100% enhomie/homie/childs/test/test_device.py 2 0 100% enhomie/homie/childs/test/test_group.py 41 0 100% enhomie/homie/childs/test/test_homie.py 33 0 100% enhomie/homie/childs/test/test_origin.py 2 0 100% enhomie/homie/childs/test/test_scene.py 34 0 100% enhomie/homie/common.py 22 0 100% enhomie/homie/config.py 128 0 100% enhomie/homie/homie.py 170 0 100% enhomie/homie/members/__init__.py 6 0 100% enhomie/homie/members/actions.py 90 0 100% enhomie/homie/members/member.py 137 0 100% enhomie/homie/members/restful.py 45 0 100% enhomie/homie/members/streams.py 12 0 100% enhomie/homie/members/test/__init__.py 0 0 100% enhomie/homie/members/test/test_actions.py 22 0 100% enhomie/homie/members/test/test_member.py 2 0 100% enhomie/homie/members/test/test_restful.py 50 0 100% enhomie/homie/members/test/test_streams.py 22 0 100% enhomie/homie/members/test/test_updates.py 22 0 100% enhomie/homie/members/updates.py 33 0 100% enhomie/homie/models.py 103 0 100% enhomie/homie/params/__init__.py 17 0 100% enhomie/homie/params/aspire.py 18 0 100% enhomie/homie/params/child.py 5 0 100% enhomie/homie/params/common.py 2 0 100% enhomie/homie/params/desire.py 18 0 100% enhomie/homie/params/device.py 8 0 100% enhomie/homie/params/group.py 9 0 100% enhomie/homie/params/homie.py 40 0 100% enhomie/homie/params/occur.py 15 0 100% enhomie/homie/params/origin.py 13 0 100% enhomie/homie/params/persist.py 28 0 100% enhomie/homie/params/plugin.py 2 0 100% enhomie/homie/params/scene.py 9 0 100% enhomie/homie/params/service.py 20 0 100% enhomie/homie/params/stage.py 9 0 100% enhomie/homie/params/store.py 30 0 100% enhomie/homie/params/where.py 15 0 100% enhomie/homie/plugins/__init__.py 6 0 100% enhomie/homie/plugins/common.py 2 0 100% enhomie/homie/plugins/driver.py 24 0 100% enhomie/homie/plugins/occur.py 42 0 100% enhomie/homie/plugins/plugin.py 44 0 100% enhomie/homie/plugins/test/__init__.py 0 0 100% enhomie/homie/plugins/test/test_driver.py 2 0 100% enhomie/homie/plugins/test/test_occur.py 23 0 100% enhomie/homie/plugins/test/test_plugin.py 2 0 100% enhomie/homie/plugins/test/test_where.py 23 0 100% enhomie/homie/plugins/where.py 41 0 100% enhomie/homie/service.py 267 0 100% enhomie/homie/test/__init__.py 2 0 100% enhomie/homie/test/test_config.py 22 0 100% enhomie/homie/test/test_homie.py 70 0 100% enhomie/homie/test/test_models.py 28 0 100% enhomie/homie/test/test_service.py 96 0 100% enhomie/homie/threads/__init__.py 12 0 100% enhomie/homie/threads/action.py 54 0 100% enhomie/homie/threads/stream.py 25 0 100% enhomie/homie/threads/test/__init__.py 0 0 100% enhomie/homie/threads/test/test_action.py 64 0 100% enhomie/homie/threads/test/test_stream.py 48 0 100% enhomie/homie/threads/test/test_thread.py 20 0 100% enhomie/homie/threads/test/test_update.py 46 0 100% enhomie/homie/threads/thread.py 126 0 100% enhomie/homie/threads/update.py 65 0 100% enhomie/hubitat/__init__.py 6 0 100% enhomie/hubitat/action.py 31 0 100% enhomie/hubitat/device.py 6 0 100% enhomie/hubitat/helpers.py 168 0 100% enhomie/hubitat/models.py 15 0 100% enhomie/hubitat/origin.py 116 0 100% enhomie/hubitat/params/__init__.py 2 0 100% enhomie/hubitat/params/origin.py 9 0 100% enhomie/hubitat/test/__init__.py 18 0 100% enhomie/hubitat/test/test_action.py 21 0 100% enhomie/hubitat/test/test_device.py 25 0 100% enhomie/hubitat/test/test_helpers.py 34 0 100% enhomie/hubitat/test/test_models.py 6 0 100% enhomie/hubitat/test/test_origin.py 97 0 100% enhomie/hubitat/test/test_update.py 14 0 100% enhomie/hubitat/update.py 14 0 100% enhomie/philips/__init__.py 12 0 100% enhomie/philips/action.py 35 0 100% enhomie/philips/device.py 6 0 100% enhomie/philips/helpers.py 205 0 100% enhomie/philips/models.py 61 0 100% enhomie/philips/origin.py 129 0 100% enhomie/philips/params/__init__.py 7 0 100% enhomie/philips/params/origin.py 9 0 100% enhomie/philips/params/plugins/__init__.py 6 0 100% enhomie/philips/params/plugins/button.py 11 0 100% enhomie/philips/params/plugins/change.py 10 0 100% enhomie/philips/params/plugins/contact.py 9 0 100% enhomie/philips/params/plugins/motion.py 9 0 100% enhomie/philips/params/plugins/scene.py 10 0 100% enhomie/philips/plugins/__init__.py 9 0 100% enhomie/philips/plugins/button.py 65 0 100% enhomie/philips/plugins/change.py 66 0 100% enhomie/philips/plugins/contact.py 62 0 100% enhomie/philips/plugins/helpers.py 69 0 100% enhomie/philips/plugins/motion.py 68 0 100% enhomie/philips/plugins/scene.py 67 0 100% enhomie/philips/plugins/test/__init__.py 0 0 100% enhomie/philips/plugins/test/test_button.py 67 0 100% enhomie/philips/plugins/test/test_change.py 44 0 100% enhomie/philips/plugins/test/test_contact.py 67 0 100% enhomie/philips/plugins/test/test_helpers.py 57 0 100% enhomie/philips/plugins/test/test_motion.py 67 0 100% enhomie/philips/plugins/test/test_scene.py 67 0 100% enhomie/philips/stream.py 30 0 100% enhomie/philips/surgeon.py 81 0 100% enhomie/philips/test/__init__.py 28 0 100% enhomie/philips/test/test_action.py 30 0 100% enhomie/philips/test/test_device.py 25 0 100% enhomie/philips/test/test_helpers.py 54 0 100% enhomie/philips/test/test_models.py 16 0 100% enhomie/philips/test/test_origin.py 132 0 100% enhomie/philips/test/test_stream.py 48 0 100% enhomie/philips/test/test_surgeon.py 32 0 100% enhomie/philips/test/test_update.py 14 0 100% enhomie/philips/update.py 14 0 100% enhomie/restful/__init__.py 3 0 100% enhomie/restful/conftest.py 20 0 100% enhomie/restful/params.py 13 0 100% enhomie/restful/persist.py 20 0 100% enhomie/restful/server.py 76 0 100% enhomie/restful/service.py 78 0 100% enhomie/restful/static/__init__.py 54 0 100% enhomie/restful/test/__init__.py 2 0 100% enhomie/restful/test/test_persist.py 12 0 100% enhomie/restful/test/test_service.py 55 0 100% enhomie/restful/test/test_static.py 29 0 100% enhomie/ubiquiti/__init__.py 6 0 100% enhomie/ubiquiti/device.py 6 0 100% enhomie/ubiquiti/helpers.py 72 0 100% enhomie/ubiquiti/models.py 29 0 100% enhomie/ubiquiti/origin.py 92 0 100% enhomie/ubiquiti/params/__init__.py 3 0 100% enhomie/ubiquiti/params/origin.py 9 0 100% enhomie/ubiquiti/params/plugins/__init__.py 2 0 100% enhomie/ubiquiti/params/plugins/client.py 7 0 100% enhomie/ubiquiti/plugins/__init__.py 3 0 100% enhomie/ubiquiti/plugins/client.py 55 0 100% enhomie/ubiquiti/plugins/helpers.py 11 0 100% enhomie/ubiquiti/plugins/test/__init__.py 0 0 100% enhomie/ubiquiti/plugins/test/test_client.py 44 0 100% enhomie/ubiquiti/plugins/test/test_helpers.py 16 0 100% enhomie/ubiquiti/test/__init__.py 21 0 100% enhomie/ubiquiti/test/test_device.py 25 0 100% enhomie/ubiquiti/test/test_models.py 9 0 100% enhomie/ubiquiti/test/test_origin.py 76 0 100% enhomie/ubiquiti/test/test_update.py 14 0 100% enhomie/ubiquiti/update.py 14 0 100% enhomie/utils/__init__.py 8 0 100% enhomie/utils/child.py 18 0 100% enhomie/utils/param.py 29 0 100% enhomie/utils/raises.py 3 0 100% enhomie/utils/test/__init__.py 0 0 100% enhomie/utils/test/test_child.py 20 0 100% enhomie/utils/test/test_param.py 16 0 100% enhomie/utils/tests.py 22 0 100% ------------------------------------------------------------------- TOTAL 8097 0 100% ======================= 120 passed, 4 warnings in 37.33s ======================= DONE ● Write coveragepy output to htmlcov.. DONE ● Write coveragepy output to coverage.json.. DONE