@@ -29,6 +29,14 @@ def mock_coordinator():
2929 return coordinator
3030
3131
32+ @pytest .fixture
33+ def mock_maintenance_coordinator ():
34+ """Create a mock maintenance coordinator."""
35+ coordinator = MagicMock ()
36+ coordinator .async_refresh = AsyncMock ()
37+ return coordinator
38+
39+
3240@pytest .fixture
3341def mock_device ():
3442 """Create a mock device."""
@@ -57,7 +65,10 @@ def test_button_entity_initialization(self, mock_coordinator, mock_device):
5765
5866 # Test elevate_access button
5967 elevate_button = QvantumButtonEntity (
60- mock_coordinator , "elevate_access" , mock_device
68+ mock_coordinator ,
69+ "elevate_access" ,
70+ mock_device ,
71+ mock_maintenance_coordinator ,
6172 )
6273
6374 assert elevate_button ._metric_key == "elevate_access"
@@ -89,43 +100,62 @@ async def test_async_press_extra_tap_water_60min(
89100
90101 @pytest .mark .asyncio
91102 async def test_async_press_elevate_access (
92- self , mock_coordinator , mock_device
103+ self , mock_coordinator , mock_device , mock_maintenance_coordinator
93104 ):
94105 """Test pressing the elevate access button."""
95106 button = QvantumButtonEntity (
96- mock_coordinator , "elevate_access" , mock_device
107+ mock_coordinator ,
108+ "elevate_access" ,
109+ mock_device ,
110+ mock_maintenance_coordinator ,
97111 )
98112
99113 await button .async_press ()
100114
101115 mock_coordinator .api .elevate_access .assert_called_once_with (
102116 "test_device_123"
103117 )
118+ # Verify maintenance coordinator is refreshed after elevating access
119+ mock_maintenance_coordinator .async_refresh .assert_called_once ()
104120
105121 @pytest .mark .asyncio
106122 async def test_async_press_elevate_access_failure (
107- self , mock_coordinator , mock_device , caplog
123+ self , mock_coordinator , mock_device , mock_maintenance_coordinator , caplog
108124 ):
109125 """Test pressing the elevate access button when elevation fails."""
110126 # Mock the API to return None (failure)
111127 mock_coordinator .api .elevate_access = AsyncMock (return_value = None )
112128
113- button = QvantumButtonEntity (mock_coordinator , "elevate_access" , mock_device )
129+ button = QvantumButtonEntity (
130+ mock_coordinator ,
131+ "elevate_access" ,
132+ mock_device ,
133+ mock_maintenance_coordinator ,
134+ )
114135
115136 await button .async_press ()
116137
117138 mock_coordinator .api .elevate_access .assert_called_once_with ("test_device_123" )
118139
119140 # Verify error is logged
120141 assert "Failed to elevate access" in caplog .text
142+ # Verify maintenance coordinator is not refreshed on failure
143+ mock_maintenance_coordinator .async_refresh .assert_not_called ()
121144
122145 @pytest .mark .asyncio
123146 async def test_async_setup_entry (
124- self , hass , mock_config_entry , mock_coordinator , mock_device
147+ self ,
148+ hass ,
149+ mock_config_entry ,
150+ mock_coordinator ,
151+ mock_device ,
152+ mock_maintenance_coordinator ,
125153 ):
126154 """Test setting up button entities."""
127155 mock_config_entry .runtime_data = RuntimeData (
128- coordinator = mock_coordinator , device = mock_device
156+ coordinator = mock_coordinator ,
157+ device = mock_device ,
158+ maintenance_coordinator = mock_maintenance_coordinator ,
129159 )
130160
131161 async_add_entities = MagicMock ()
0 commit comments