async def setup_test_component(hass, services): """Load a fake homekit accessory based on a homekit accessory model.""" domain = None for service in services: service_name = ServicesTypes.get_short(service.type) if service_name in HOMEKIT_ACCESSORY_DISPATCH: domain = HOMEKIT_ACCESSORY_DISPATCH[service_name] break assert domain, 'Cannot map test homekit services to homeassistant domain' config = {'discovery': {}} with mock.patch('homekit.Controller') as controller: fake_controller = controller.return_value = FakeController() await async_setup_component(hass, DOMAIN, config) accessory = Accessory('TestDevice', 'example.com', 'Test', '0001', '0.1') accessory.services.extend(services) pairing = fake_controller.add(accessory) discovery_info = { 'host': '127.0.0.1', 'port': 8080, 'properties': { 'md': 'TestDevice', 'id': '00:00:00:00:00:00', 'c#': 1, } } fire_service_discovered(hass, SERVICE_HOMEKIT, discovery_info) await hass.async_block_till_done() return Helper(hass, '.'.join((domain, 'testdevice')), pairing, accessory)
def test_discovery(self): """Test discovery.""" scanner = get_component("device_tracker.test").SCANNER with patch.dict(device_tracker.DISCOVERY_PLATFORMS, {"test": "test"}): with patch.object(scanner, "scan_devices") as mock_scan: self.assertTrue(setup_component(self.hass, device_tracker.DOMAIN, TEST_PLATFORM)) fire_service_discovered(self.hass, "test", {}) self.assertTrue(mock_scan.called)
def test_discovery(self): """Test discovery.""" scanner = get_component('device_tracker.test').SCANNER with patch.dict(device_tracker.DISCOVERY_PLATFORMS, {'test': 'test'}): with patch.object(scanner, 'scan_devices') as mock_scan: self.assertTrue(device_tracker.setup(self.hass, TEST_PLATFORM)) fire_service_discovered(self.hass, 'test', {}) self.assertTrue(mock_scan.called)
def test_discovery(self): scanner = get_component('device_tracker.test').SCANNER with patch.dict(device_tracker.DISCOVERY_PLATFORMS, {'test': 'test'}): with patch.object(scanner, 'scan_devices') as mock_scan: self.assertTrue(device_tracker.setup(self.hass, { device_tracker.DOMAIN: {CONF_PLATFORM: 'test'}})) fire_service_discovered(self.hass, 'test', {}) self.assertTrue(mock_scan.called)
def test_discovery(self): """Test discovery.""" scanner = get_component('device_tracker.test').SCANNER with patch.dict(device_tracker.DISCOVERY_PLATFORMS, {'test': 'test'}): with patch.object(scanner, 'scan_devices', autospec=True) as mock_scan: with assert_setup_component(1, device_tracker.DOMAIN): assert setup_component( self.hass, device_tracker.DOMAIN, TEST_PLATFORM) fire_service_discovered(self.hass, 'test', {}) self.assertTrue(mock_scan.called)
async def setup_test_component(hass, services, capitalize=False): """Load a fake homekit accessory based on a homekit accessory model. If capitalize is True, property names will be in upper case. """ domain = None for service in services: service_name = ServicesTypes.get_short(service.type) if service_name in HOMEKIT_ACCESSORY_DISPATCH: domain = HOMEKIT_ACCESSORY_DISPATCH[service_name] break assert domain, 'Cannot map test homekit services to homeassistant domain' config = { 'discovery': { } } with mock.patch('homekit.Controller') as controller: fake_controller = controller.return_value = FakeController() await async_setup_component(hass, DOMAIN, config) accessory = Accessory('TestDevice', 'example.com', 'Test', '0001', '0.1') accessory.services.extend(services) pairing = fake_controller.add(accessory) discovery_info = { 'host': '127.0.0.1', 'port': 8080, 'properties': { ('MD' if capitalize else 'md'): 'TestDevice', ('ID' if capitalize else 'id'): '00:00:00:00:00:00', ('C#' if capitalize else 'c#'): 1, } } fire_service_discovered(hass, SERVICE_HOMEKIT, discovery_info) await hass.async_block_till_done() return Helper(hass, '.'.join((domain, 'testdevice')), pairing, accessory)
async def setup_test_accessories(hass, accessories, capitalize=False): """Load a fake homekit accessory based on a homekit accessory model. If capitalize is True, property names will be in upper case. """ fake_controller = await setup_platform(hass) pairing = fake_controller.add(accessories) discovery_info = { 'host': '127.0.0.1', 'port': 8080, 'properties': { ('MD' if capitalize else 'md'): 'TestDevice', ('ID' if capitalize else 'id'): '00:00:00:00:00:00', ('C#' if capitalize else 'c#'): 1, } } fire_service_discovered(hass, SERVICE_HOMEKIT, discovery_info) await hass.async_block_till_done() return pairing
async def device_config_changed(hass, accessories): """Discover new devices added to HomeAssistant at runtime.""" # Update the accessories our FakePairing knows about controller = hass.data[CONTROLLER] pairing = controller.pairings['00:00:00:00:00:00'] pairing.accessories = accessories discovery_info = { 'host': '127.0.0.1', 'port': 8080, 'properties': { 'md': 'TestDevice', 'id': '00:00:00:00:00:00', 'c#': '2', 'sf': '0', } } fire_service_discovered(hass, SERVICE_HOMEKIT, discovery_info) # Wait for services to reconfigure await hass.async_block_till_done()
async def setup_test_component(hass, services, capitalize=False, suffix=None): """Load a fake homekit accessory based on a homekit accessory model. If capitalize is True, property names will be in upper case. If suffix is set, entityId will include the suffix """ domain = None for service in services: service_name = ServicesTypes.get_short(service.type) if service_name in HOMEKIT_ACCESSORY_DISPATCH: domain = HOMEKIT_ACCESSORY_DISPATCH[service_name] break assert domain, 'Cannot map test homekit services to homeassistant domain' fake_controller = await setup_platform(hass) accessory = Accessory('TestDevice', 'example.com', 'Test', '0001', '0.1') accessory.services.extend(services) pairing = fake_controller.add([accessory]) discovery_info = { 'host': '127.0.0.1', 'port': 8080, 'properties': { ('MD' if capitalize else 'md'): 'TestDevice', ('ID' if capitalize else 'id'): '00:00:00:00:00:00', ('C#' if capitalize else 'c#'): 1, } } fire_service_discovered(hass, SERVICE_HOMEKIT, discovery_info) await hass.async_block_till_done() entity = 'testdevice' if suffix is None else 'testdevice_{}'.format(suffix) return Helper(hass, '.'.join((domain, entity)), pairing, accessory)