Files
NexaLogi/tests/test_mock_provider.py
T
nessi 454cad95c5 Add project infrastructure and core application files
Add .gitignore, GitLab CI pipeline with test/lint/build/release stages, project documentation (README, LICENSE, CHANGELOG, CONTRIBUTING, SECURITY), PyInstaller packaging configuration with icon and version info, Python project configuration with dependencies, and complete application source including battery provider, device discovery, settings management, UI components, startup control, and comprehensive test suite
2026-06-21 11:07:05 +02:00

26 lines
813 B
Python

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)