afancontrol/tests/temp/test_file.py
2021-10-26 12:58:36 +02:00

89 lines
2.2 KiB
Python

import pytest
from afancontrol.temp import FileTemp, TempCelsius, TempStatus
@pytest.fixture
def file_temp_path(temp_path):
# /sys/class/hwmon/hwmon0/temp1_input
temp_input_path = temp_path / "temp1_input"
temp_input_path.write_text("34000\n")
temp_max_path = temp_path / "temp1_max"
temp_max_path.write_text("127000\n")
temp_min_path = temp_path / "temp1_min"
# My mobo actually returns this as min:
temp_min_path.write_text("127000\n")
return temp_input_path
def test_file_temp_min_max_numbers(file_temp_path):
temp = FileTemp(
temp_path=str(file_temp_path),
min=TempCelsius(40.0),
max=TempCelsius(50.0),
panic=TempCelsius(60.0),
threshold=None,
)
assert temp.get() == TempStatus(
temp=TempCelsius(34.0),
min=TempCelsius(40.0),
max=TempCelsius(50.0),
panic=TempCelsius(60.0),
threshold=None,
is_panic=False,
is_threshold=False,
)
print(repr(temp))
def test_file_temp_glob(file_temp_path):
temp = FileTemp(
temp_path=str(file_temp_path).replace("/temp1", "/temp?"),
min=TempCelsius(40.0),
max=None,
panic=None,
threshold=None,
)
assert temp.get() == TempStatus(
temp=TempCelsius(34.0),
min=TempCelsius(40.0),
max=TempCelsius(127.0),
panic=None,
threshold=None,
is_panic=False,
is_threshold=False,
)
print(repr(temp))
def test_file_temp_min_max_files(temp_path, file_temp_path):
with pytest.raises(RuntimeError):
# min == max is an error
FileTemp(
temp_path=str(file_temp_path),
min=None,
max=None,
panic=TempCelsius(60.0),
threshold=None,
).get()
temp = FileTemp(
temp_path=str(file_temp_path),
min=TempCelsius(50.0),
max=None,
panic=TempCelsius(60.0),
threshold=None,
)
assert temp.get() == TempStatus(
temp=TempCelsius(34.0),
min=TempCelsius(50.0),
max=TempCelsius(127.0),
panic=TempCelsius(60.0),
threshold=None,
is_panic=False,
is_threshold=False,
)