Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
+80
View File
@@ -0,0 +1,80 @@
import unittest
from unittest.mock import MagicMock, patch
from app.services.hardware import HX711UnavailableError, HX711Wrapper
class HX711WrapperTests(unittest.TestCase):
def test_simulation_mode_returns_non_negative_samples(self) -> None:
wrapper = HX711Wrapper(simulation_mode=True)
values = [wrapper.read_weight_sample() for _ in range(20)]
self.assertEqual(len(values), 20)
for value in values:
self.assertIsInstance(value, float)
self.assertGreaterEqual(value, 0.0)
def test_apply_simulation_mode_initializes_device_when_disabled(self) -> None:
wrapper = HX711Wrapper(simulation_mode=True)
self.assertIsNone(wrapper._device)
device = MagicMock()
with unittest.mock.patch.dict(
"sys.modules",
{"hx711": MagicMock(HX711=MagicMock(return_value=device))},
):
wrapper.apply_simulation_mode(False)
self.assertFalse(wrapper.simulation_mode)
self.assertIs(wrapper._device, device)
def test_apply_simulation_mode_clears_device_when_enabled(self) -> None:
wrapper = HX711Wrapper.__new__(HX711Wrapper)
wrapper._sim_weight = 0.0
wrapper._dout_pin = 2
wrapper._pd_sck_pin = 3
wrapper._device = MagicMock()
wrapper.simulation_mode = False
wrapper.apply_simulation_mode(True)
self.assertTrue(wrapper.simulation_mode)
self.assertIsNone(wrapper._device)
def test_non_simulation_raises_when_no_device(self) -> None:
wrapper = HX711Wrapper.__new__(HX711Wrapper)
wrapper.simulation_mode = False
wrapper._device = None
wrapper._dout_pin = 2
wrapper._pd_sck_pin = 3
wrapper._sim_weight = 0.0
with self.assertRaises(HX711UnavailableError):
wrapper.read_weight_sample()
def test_read_raw_mean_via_get_raw_data_list(self) -> None:
wrapper = HX711Wrapper.__new__(HX711Wrapper)
wrapper.simulation_mode = False
wrapper._sim_weight = 0.0
wrapper._dout_pin = 2
wrapper._pd_sck_pin = 3
device = MagicMock(spec=["get_raw_data"])
device.get_raw_data.return_value = [-28000, -28020, -28010]
wrapper._device = device
value = wrapper.read_weight_sample()
self.assertAlmostEqual(value, -28010.0, places=1)
device.get_raw_data.assert_called_once_with(times=3)
def test_read_raw_mean_via_get_raw_data_mean(self) -> None:
wrapper = HX711Wrapper.__new__(HX711Wrapper)
wrapper.simulation_mode = False
wrapper._sim_weight = 0.0
wrapper._dout_pin = 2
wrapper._pd_sck_pin = 3
device = MagicMock(spec=["get_raw_data_mean"])
device.get_raw_data_mean.return_value = 12345.0
wrapper._device = device
self.assertEqual(wrapper.read_weight_sample(), 12345.0)
device.get_raw_data_mean.assert_called_once_with(3)
if __name__ == "__main__":
unittest.main()