Example #1
0
async def test_duplicate_mac_dev_id(mock_warning, hass):
    """Test adding duplicate MACs or device IDs to DeviceTracker."""
    devices = [
        legacy.Device(hass, True, True, 'my_device', 'AB:01', 'My device',
                      None, None, False),
        legacy.Device(hass, True, True, 'your_device', 'AB:01', 'Your device',
                      None, None, False)
    ]
    legacy.DeviceTracker(hass, False, True, {}, devices)
    _LOGGER.debug(mock_warning.call_args_list)
    assert mock_warning.call_count == 1, \
        "The only warning call should be duplicates (check DEBUG)"
    args, _ = mock_warning.call_args
    assert 'Duplicate device MAC' in args[0], \
        'Duplicate MAC warning expected'

    mock_warning.reset_mock()
    devices = [
        legacy.Device(hass, True, True, 'my_device', 'AB:01', 'My device',
                      None, None, False),
        legacy.Device(hass, True, True, 'my_device', None, 'Your device', None,
                      None, False)
    ]
    legacy.DeviceTracker(hass, False, True, {}, devices)

    _LOGGER.debug(mock_warning.call_args_list)
    assert mock_warning.call_count == 1, \
        "The only warning call should be duplicates (check DEBUG)"
    args, _ = mock_warning.call_args
    assert 'Duplicate device IDs' in args[0], \
        'Duplicate device IDs warning expected'
Example #2
0
async def test_duplicate_mac_dev_id(mock_warning, hass):
    """Test adding duplicate MACs or device IDs to DeviceTracker."""
    devices = [
        legacy.Device(hass, True, True, "my_device", "AB:01", "My device",
                      None, None, False),
        legacy.Device(hass, True, True, "your_device", "AB:01", "Your device",
                      None, None, False),
    ]
    legacy.DeviceTracker(hass, False, True, {}, devices)
    _LOGGER.debug(mock_warning.call_args_list)
    assert (mock_warning.call_count == 1
            ), "The only warning call should be duplicates (check DEBUG)"
    args, _ = mock_warning.call_args
    assert "Duplicate device MAC" in args[0], "Duplicate MAC warning expected"

    mock_warning.reset_mock()
    devices = [
        legacy.Device(hass, True, True, "my_device", "AB:01", "My device",
                      None, None, False),
        legacy.Device(hass, True, True, "my_device", None, "Your device", None,
                      None, False),
    ]
    legacy.DeviceTracker(hass, False, True, {}, devices)

    _LOGGER.debug(mock_warning.call_args_list)
    assert (mock_warning.call_count == 1
            ), "The only warning call should be duplicates (check DEBUG)"
    args, _ = mock_warning.call_args
    assert "Duplicate device IDs" in args[
        0], "Duplicate device IDs warning expected"
Example #3
0
async def test_old_style_track_new_is_skipped(mock_device_tracker_conf, hass):
    """Test old style config is skipped."""
    tracker = legacy.DeviceTracker(hass, timedelta(seconds=60), None,
                                   {device_tracker.CONF_TRACK_NEW: False}, [])
    await tracker.async_see(dev_id=14)
    await hass.async_block_till_done()
    assert len(mock_device_tracker_conf) == 1
    assert mock_device_tracker_conf[0].track is False
Example #4
0
async def test_default_hide_if_away_is_used(mock_device_tracker_conf, hass):
    """Test that default track_new is used."""
    tracker = legacy.DeviceTracker(hass, timedelta(seconds=60), False,
                                   {device_tracker.CONF_AWAY_HIDE: True}, [])
    await tracker.async_see(dev_id=12)
    await hass.async_block_till_done()
    assert len(mock_device_tracker_conf) == 1
    assert mock_device_tracker_conf[0].away_hide
async def test_picture_and_icon_on_see_discovery(mock_device_tracker_conf, hass):
    """Test that picture and icon are set in initial see."""
    tracker = legacy.DeviceTracker(hass, timedelta(seconds=60), False, {}, [])
    await tracker.async_see(dev_id=11, picture="pic_url", icon="mdi:icon")
    await hass.async_block_till_done()
    assert len(mock_device_tracker_conf) == 1
    assert mock_device_tracker_conf[0].icon == "mdi:icon"
    assert mock_device_tracker_conf[0].entity_picture == "pic_url"
Example #6
0
async def test_backward_compatibility_for_track_new(mock_device_tracker_conf,
                                                    hass):
    """Test backward compatibility for track new."""
    tracker = legacy.DeviceTracker(hass, timedelta(seconds=60), False,
                                   {device_tracker.CONF_TRACK_NEW: True}, [])
    await tracker.async_see(dev_id=13)
    await hass.async_block_till_done()
    assert len(mock_device_tracker_conf) == 1
    assert mock_device_tracker_conf[0].track is False
Example #7
0
async def test_see_failures(mock_warning, hass, mock_device_tracker_conf):
    """Test that the device tracker see failures."""
    devices = mock_device_tracker_conf
    tracker = legacy.DeviceTracker(hass, timedelta(seconds=60), 0, {}, [])

    # MAC is not a string (but added)
    await tracker.async_see(mac=567, host_name="Number MAC")

    # No device id or MAC(not added)
    with pytest.raises(HomeAssistantError):
        await tracker.async_see()
    assert mock_warning.call_count == 0

    # Ignore gps on invalid GPS (both added & warnings)
    await tracker.async_see(mac='mac_1_bad_gps', gps=1)
    await tracker.async_see(mac='mac_2_bad_gps', gps=[1])
    await tracker.async_see(mac='mac_3_bad_gps', gps='gps')
    await hass.async_block_till_done()

    assert mock_warning.call_count == 3
    assert len(devices) == 4