from datetime import datetime import pytest from logitech_battery_widget.battery.mock_provider import MockBatteryProvider from logitech_battery_widget.battery.provider import BatteryDevice, ChargeStatus def test_mock_provider_returns_multiple_independent_devices(): first = MockBatteryProvider().get_devices() second = MockBatteryProvider().get_devices() assert len(first) == 2 assert all(device.updated_at is not None for device in first) assert first is not second def test_custom_mock_devices_are_preserved(): device = BatteryDevice("id", "Test", 42, ChargeStatus.CHARGING, datetime.now()) assert MockBatteryProvider([device]).get_devices() == [device] def test_invalid_percentage_is_rejected(): with pytest.raises(ValueError): BatteryDevice("id", "Test", 101)