示例#1
0
async def test_get_location_no_native_location(monkeypatch):
    """Test get_location() without native location support."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["drive_state"]["native_location_supported"] = False
    _data["drive_state"]["longitude"] = 12.345
    _data["drive_state"]["native_longitude"] = 23.456
    _data["drive_state"]["latitude"] = 34.567
    _data["drive_state"]["native_latitude"] = 45.678
    _data["drive_state"]["heading"] = 12
    _data["drive_state"]["native_heading"] = 21
    _data["drive_state"]["speed"] = 23.4

    _gps = GPS(_data, _controller)

    await _gps.async_update()
    _location = _gps.get_location()

    assert not _location is None
    assert _location["longitude"] == 12.345
    assert _location["latitude"] == 34.567
    assert _location["heading"] == 12
    assert _location["speed"] == 23.4
async def test_values_after_update(monkeypatch):
    """Test values after update."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _device = VehicleDevice(_data, _controller)

    await _device.async_update()

    assert not _device is None

    assert not _device.car_name() is None
    assert _device.car_name() == "Nikola 2.0"

    assert not _device.car_type is None
    assert _device.car_type == "Model S"

    assert not _device.car_version is None
    assert _device.car_version == "2019.40.2.1 38f55d9f9205"

    assert not _device.id() is None
    assert _device.id() == 12345678901234567

    assert not _device.sentry_mode_available is None
    assert _device.sentry_mode_available

    assert not _device.vehicle_id is None
    assert _device.vehicle_id() == 1234567890
def test_values_on_init(monkeypatch):
    """Test values after initialization."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _device = VehicleDevice(_data, _controller)

    assert not _device is None

    assert not _device.car_name() is None
    assert _device.car_name() == "Nikola 2.0"

    assert not _device.car_type is None
    assert _device.car_type == "Model S"

    assert not _device.car_version is None
    assert _device.car_version == ""

    assert not _device.id() is None
    assert _device.id() == 12345678901234567

    assert not _device.sentry_mode_available is None
    assert _device.sentry_mode_available

    assert not _device.vehicle_id is None
    assert _device.vehicle_id() == 1234567890
示例#4
0
def test_device_class(monkeypatch):
    """Test device_class()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _range = Range(_data, _controller)

    assert _range.device_class is None
示例#5
0
def test_is_maxrange_on_init(monkeypatch):
    """Test is_maxrange() when not charging."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _switch = RangeSwitch(_data, _controller)

    assert not _switch.is_maxrange()
示例#6
0
def test_has_battery(monkeypatch):
    """Test has_battery()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _switch = RangeSwitch(_data, _controller)

    assert not _switch.has_battery()
示例#7
0
def test_has_battery(monkeypatch):
    """Test has_battery()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _lock = FrunkLock(_data, _controller)

    assert not _lock.has_battery()
示例#8
0
def test_has_battery(monkeypatch):
    """Test has_battery()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _seat = HeatedSeatSwitch(_data, _controller, 'left')

    assert not _seat.has_battery()
def test_is_armed(monkeypatch):
    """Test is_armed()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _device = VehicleDevice(_data, _controller)

    assert not _device.is_armed()
示例#10
0
def test_device_class(monkeypatch):
    """Test device_class()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _sensor = Battery(_data, _controller)

    assert _sensor.device_class == "battery"
示例#11
0
def test_has_battery(monkeypatch):
    """Test has_battery()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _sensor = ParkingSensor(_data, _controller)

    assert not _sensor.has_battery()
示例#12
0
def test_get_value_on_init(monkeypatch):
    """Test get_value() after initialization."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _sensor = ParkingSensor(_data, _controller)

    assert not _sensor is None
    assert _sensor.get_value() is None
示例#13
0
def test_get_seat_heat_level_on_init(monkeypatch):
    """Test get_seat_heat_level() after initialization."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _seat = HeatedSeatSwitch(_data, _controller, 'left')

    assert not _seat is None
    assert _seat.get_seat_heat_level() == 3 # 3 is mocked initial level for left seat from tesla_mock.py
示例#14
0
def test_is_locked_on_init(monkeypatch):
    """Test is_locked() after initialization."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _lock = FrunkLock(_data, _controller)

    assert _lock is not None
    assert not _lock.is_locked()
def test_available_false(monkeypatch):
    """Test available() when flag sentry_mode_available is false."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["vehicle_state"]["sentry_mode_available"] = False
    _switch = SentryModeSwitch(_data, _controller)

    assert not _switch.available()
示例#16
0
def test_get_value_on_init(monkeypatch):
    """Test get_value() after initialization."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _range = Range(_data, _controller)

    assert not _range is None
    assert _range.get_value() is None
示例#17
0
async def test_async_update(monkeypatch):
    """Test async_update()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["charge_state"]["charging_state"] = "Charging"
    _switch = ChargerSwitch(_data, _controller)

    await _switch.async_update()
    assert _switch.is_charging()
示例#18
0
async def test_is_charging_off(monkeypatch):
    """Test is_charging() with charging state disconnected."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["charge_state"]["charging_state"] = "Disconnected"
    _switch = ChargerSwitch(_data, _controller)

    await _switch.async_update()
    assert not _switch.is_charging()
示例#19
0
async def test_is_maxrange_off(monkeypatch):
    """Test is_maxrange() with charging state disconnected."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["charge_state"]["charge_to_max_range"] = False
    _switch = RangeSwitch(_data, _controller)

    await _switch.async_update()
    assert not _switch.is_maxrange()
示例#20
0
async def test_async_update(monkeypatch):
    """Test async_update()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["charge_state"]["charge_to_max_range"] = True
    _switch = RangeSwitch(_data, _controller)

    await _switch.async_update()
    assert _switch.is_maxrange()
def test_is_on_true(monkeypatch):
    """Test is_on() when flag sentry_mode is true."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["vehicle_state"]["sentry_mode_available"] = True
    _data["vehicle_state"]["sentry_mode"] = True
    _switch = SentryModeSwitch(_data, _controller)

    assert _switch.is_on()
示例#22
0
def test_get_temp_on_init(monkeypatch):
    """Test get_inside_temp() and get_outside_temp() after initialization."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _sensor = TempSensor(_data, _controller)

    assert not _sensor is None
    assert _sensor.get_inside_temp() is None
    assert _sensor.get_outside_temp() is None
示例#23
0
async def test_get_value_after_update(monkeypatch):
    """Test get_value() after an update."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _odometer = Odometer(_data, _controller)

    await _odometer.async_update()

    assert not _odometer is None
    assert _odometer.get_value() == 33561.4
async def test_enable_sentry_mode(monkeypatch):
    """Test enable_sentry_mode()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["vehicle_state"]["sentry_mode_available"] = True
    _data["vehicle_state"]["sentry_mode"] = False
    _switch = SentryModeSwitch(_data, _controller)

    await _switch.enable_sentry_mode()
    assert _switch.is_on()
示例#25
0
async def test_is_locked_after_update(monkeypatch):
    """Test is_locked() after an update."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["vehicle_state"]["ft"] = 0
    _lock = FrunkLock(_data, _controller)

    await _lock.async_update()

    assert _lock is not None
    assert _lock.is_locked()
示例#26
0
async def test_is_locked_after_update(monkeypatch):
    """Test is_locked() after an update."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["charge_state"]["charge_port_door_open"] = True
    _lock = ChargerLock(_data, _controller)

    await _lock.async_update()

    assert not _lock is None
    assert _lock.is_locked()
示例#27
0
async def test_get_value_after_update(monkeypatch):
    """Test get_value() after an update."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _range = Range(_data, _controller)

    await _range.async_update()

    assert not _range is None
    assert not _range.get_value() is None
    assert _range.get_value() == 167.96
示例#28
0
async def test_battery_level(monkeypatch):
    """Test battery_level()."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _sensor = Battery(_data, _controller)

    await _sensor.async_update()

    assert not _sensor is None
    assert not _sensor.get_value() is None
    assert _sensor.battery_level() == 64
示例#29
0
async def test_battery_charging_on(monkeypatch):
    """Test battery_charging() when charging."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _data["charge_state"]["charging_state"] = "Charging"
    _sensor = Battery(_data, _controller)

    await _sensor.async_update()

    assert not _sensor is None
    assert _sensor.battery_charging()
示例#30
0
async def test_get_value_after_update(monkeypatch):
    """Test get_value() after an update."""

    _mock = TeslaMock(monkeypatch)
    _controller = Controller(None)

    _data = _mock.data_request_vehicle()
    _sensor = ParkingSensor(_data, _controller)

    await _sensor.async_update()

    assert not _sensor is None
    assert not _sensor.get_value() is None
    assert _sensor.get_value()