def _get_test_integration_with_zeroconf_matcher(opp, name, config_flow): """Return a generated test integration with a zeroconf matcher.""" return loader.Integration( opp, f"openpeerpower.components.{name}", None, { "name": name, "domain": name, "config_flow": config_flow, "dependencies": [], "requirements": [], "zeroconf": [{"type": f"_{name}._tcp.local.", "name": f"{name}*"}], "homekit": {"models": [name]}, "ssdp": [{"manufacturer": name, "modelName": name}], }, )
def _get_test_integration(opp, name, config_flow): """Return a generated test integration.""" return loader.Integration( opp, f"openpeerpower.components.{name}", None, { "name": name, "domain": name, "config_flow": config_flow, "dependencies": [], "requirements": [], "zeroconf": [f"_{name}._tcp.local."], "homekit": {"models": [name]}, "ssdp": [{"manufacturer": name, "modelName": name}], "mqtt": [f"{name}/discovery"], }, )
def _get_test_integration_with_dhcp_matcher(opp, name, config_flow): """Return a generated test integration with a dhcp matcher.""" return loader.Integration( opp, f"openpeerpower.components.{name}", None, { "name": name, "domain": name, "config_flow": config_flow, "dependencies": [], "requirements": [], "zeroconf": [], "dhcp": [ {"hostname": "tesla_*", "macaddress": "4CFCAA*"}, {"hostname": "tesla_*", "macaddress": "044EAF*"}, {"hostname": "tesla_*", "macaddress": "98ED5C*"}, ], "homekit": {"models": [name]}, "ssdp": [{"manufacturer": name, "modelName": name}], }, )
def mock_integration(opp, module, built_in=True): """Mock an integration.""" integration = loader.Integration( opp, f"{loader.PACKAGE_BUILTIN}.{module.DOMAIN}" if built_in else f"{loader.PACKAGE_CUSTOM_COMPONENTS}.{module.DOMAIN}", None, module.mock_manifest(), ) def mock_import_platform(platform_name): raise ImportError( f"Mocked unable to import platform '{platform_name}'", name=f"{integration.pkg_path}.{platform_name}", ) integration._import_platform = mock_import_platform _LOGGER.info("Adding mock integration: %s", module.DOMAIN) opp.data.setdefault(loader.DATA_INTEGRATIONS, {})[module.DOMAIN] = integration opp.data.setdefault(loader.DATA_COMPONENTS, {})[module.DOMAIN] = module return integration
def test_integration_properties(opp): """Test integration properties.""" integration = loader.Integration( opp, "openpeerpower.components.hue", None, { "name": "Philips Hue", "domain": "hue", "dependencies": ["test-dep"], "requirements": ["test-req==1.0.0"], "zeroconf": ["_hue._tcp.local."], "homekit": {"models": ["BSB002"]}, "dhcp": [ {"hostname": "tesla_*", "macaddress": "4CFCAA*"}, {"hostname": "tesla_*", "macaddress": "044EAF*"}, {"hostname": "tesla_*", "macaddress": "98ED5C*"}, ], "ssdp": [ { "manufacturer": "Royal Philips Electronics", "modelName": "Philips hue bridge 2012", }, { "manufacturer": "Royal Philips Electronics", "modelName": "Philips hue bridge 2015", }, {"manufacturer": "Signify", "modelName": "Philips hue bridge 2015"}, ], "mqtt": ["hue/discovery"], "version": "1.0.0", }, ) assert integration.name == "Philips Hue" assert integration.domain == "hue" assert integration.homekit == {"models": ["BSB002"]} assert integration.zeroconf == ["_hue._tcp.local."] assert integration.dhcp == [ {"hostname": "tesla_*", "macaddress": "4CFCAA*"}, {"hostname": "tesla_*", "macaddress": "044EAF*"}, {"hostname": "tesla_*", "macaddress": "98ED5C*"}, ] assert integration.ssdp == [ { "manufacturer": "Royal Philips Electronics", "modelName": "Philips hue bridge 2012", }, { "manufacturer": "Royal Philips Electronics", "modelName": "Philips hue bridge 2015", }, {"manufacturer": "Signify", "modelName": "Philips hue bridge 2015"}, ] assert integration.mqtt == ["hue/discovery"] assert integration.dependencies == ["test-dep"] assert integration.requirements == ["test-req==1.0.0"] assert integration.is_built_in is True assert integration.version == "1.0.0" integration = loader.Integration( opp, "custom_components.hue", None, { "name": "Philips Hue", "domain": "hue", "dependencies": ["test-dep"], "requirements": ["test-req==1.0.0"], }, ) assert integration.is_built_in is False assert integration.homekit is None assert integration.zeroconf is None assert integration.dhcp is None assert integration.ssdp is None assert integration.mqtt is None assert integration.version is None integration = loader.Integration( opp, "custom_components.hue", None, { "name": "Philips Hue", "domain": "hue", "dependencies": ["test-dep"], "zeroconf": [{"type": "_hue._tcp.local.", "name": "hue*"}], "requirements": ["test-req==1.0.0"], }, ) assert integration.is_built_in is False assert integration.homekit is None assert integration.zeroconf == [{"type": "_hue._tcp.local.", "name": "hue*"}] assert integration.dhcp is None assert integration.ssdp is None