33"""Test file for driver."""
44
55from decimal import Decimal
6- from unittest .mock import MagicMock
6+ from unittest .mock import MagicMock , call
77
88import pytest
99from pymodbus import ModbusException
@@ -897,8 +897,8 @@ def test_reset_tot_energy_and_run_hour_counter() -> None:
897897 meter .reset_tot_energy_and_run_hour_counter ()
898898
899899
900- def test_reset_partial_energy_and_partial_hour () -> None :
901- """Test Reset partial energy + partial run hour counters."""
900+ def test_reset_partial_energy_and_hour_counter () -> None :
901+ """Test Reset partial energy + partial hour counters."""
902902 client = MagicMock ()
903903 mock_result = MagicMock ()
904904 mock_result .isError .return_value = False
@@ -917,3 +917,27 @@ def test_reset_partial_energy_and_partial_hour() -> None:
917917 client .write_register .return_value = mock_result
918918 with pytest .raises (ModbusException , match = "Failed to write to single register:" ):
919919 meter .reset_partial_energy_and_hour_counter ()
920+
921+
922+ def test_reset_to_factory_settings () -> None :
923+ """Test Reset DMD and DMD max values."""
924+ client = MagicMock ()
925+ mock_result = MagicMock ()
926+ mock_result .isError .return_value = False
927+ client .write_register .return_value = mock_result
928+ meter = Em511 (1 , client )
929+
930+ """Test 1: Both writes occur"""
931+ meter .reset_to_factory_settings ()
932+ expected_calls = [
933+ call (address = 16416 , value = 0x0A0A , device_id = 1 ),
934+ call (address = 16416 , value = 0xC1A0 , device_id = 1 ),
935+ ]
936+ assert client .write_register .call_args_list == expected_calls
937+ assert client .write_register .call_count == 2
938+
939+ """Test 3: Should raise exception due to failed writing to single register."""
940+ mock_result .isError .return_value = True
941+ client .write_register .return_value = mock_result
942+ with pytest .raises (ModbusException , match = "Failed to write to single register:" ):
943+ meter .reset_to_factory_settings ()
0 commit comments