@@ -209,30 +209,38 @@ def test_scheduled_charging_recent_plan(end_time_mock,
209209 if selected_plan :
210210 assert selected_plan .plan .id == expected_plan_num
211211 else :
212- selected_plan = None
212+ assert selected_plan is None
213213
214214
215- def test_scheduled_charging_recent_plan_fulfilled (monkeypatch ):
215+ @pytest .mark .parametrize ("end_time_mock, expected_plan_num" ,
216+ [
217+ pytest .param ([- 10000 , 1500 , 2000 ], 0 , id = "1st plan" ),
218+ pytest .param ([None , - 100 , 2000 ], 1 , id = "1st plan fulfilled, 2nd plan" ),
219+ pytest .param ([None , - 50 , - 100 ], 2 , id = "1st plan fulfilled, 3rd plan" ),
220+ pytest .param ([None ]* 3 , None , id = "no plan" ),
221+ ])
222+ def test_scheduled_charging_recent_plan_fulfilled (end_time_mock , expected_plan_num , monkeypatch ):
216223 # setup
217224 # der erste PLan ist erfüllt, der zweite wird ausgewählt
218225 calculate_duration_mock = Mock (return_value = (100 , 3000 , 3 , 500 ))
219226 monkeypatch .setattr (ChargeTemplate , "_calc_remaining_time" , calculate_duration_mock )
220- check_end_time_mock = Mock (side_effect = [ None , 1500 ] )
227+ check_end_time_mock = Mock (side_effect = end_time_mock )
221228 monkeypatch .setattr (timecheck , "check_end_time" , check_end_time_mock )
222229 ct = ChargeTemplate ()
223230 plan_mock_0 = Mock (spec = ScheduledChargingPlan , active = True , current = 14 , id = 0 , limit = Limit (selected = "amount" ))
224231 plan_mock_1 = Mock (spec = ScheduledChargingPlan , active = True , current = 14 , id = 1 , limit = Limit (selected = "amount" ))
225- ct .data .chargemode .scheduled_charging .plans = {"0" : plan_mock_0 , "1" : plan_mock_1 }
232+ plan_mock_2 = Mock (spec = ScheduledChargingPlan , active = True , current = 14 , id = 2 , limit = Limit (selected = "amount" ))
233+ ct .data .chargemode .scheduled_charging .plans = {"0" : plan_mock_0 , "1" : plan_mock_1 , "2" : plan_mock_2 }
226234
227235 # execution
228236 selected_plan = ct .scheduled_charging_recent_plan (
229237 60 , EvTemplate (), 3 , 1200 , 3 , True , ChargingType .AC .value , 1652688000 , Mock (spec = ControlParameter ))
230238
231239 # evaluation
232240 if selected_plan :
233- assert selected_plan .plan .id == 1
241+ assert selected_plan .plan .id == expected_plan_num
234242 else :
235- selected_plan = None
243+ assert selected_plan is expected_plan_num
236244
237245
238246@pytest .mark .parametrize (
0 commit comments