def test_any_fan_absence_condition(): chassis = MockChassis() chassis.make_fan_absence() fan_info = FanInfo() fan_info.collect(chassis) from sonic_platform.thermal_conditions import AnyFanAbsenceCondition condition = AnyFanAbsenceCondition() assert condition.is_match({'fan_info': fan_info}) fan = chassis.get_all_fan_drawers()[0].get_all_fans()[0] fan.presence = True fan_info.collect(chassis) assert not condition.is_match({'fan_info': fan_info})
def test_execute_set_fan_speed_action(): chassis = MockChassis() fan_list = chassis.get_all_fans() fan_list.append(MockFan()) fan_list.append(MockFan()) fan_info = FanInfo() fan_info.collect(chassis) from sonic_platform.thermal_actions import SetAllFanSpeedAction action = SetAllFanSpeedAction() action.speed = 99 action.execute({'fan_info': fan_info}) assert fan_list[0].speed == 99 assert fan_list[1].speed == 99
def test_execute_set_fan_speed_action(): chassis = MockChassis() chassis.get_all_fan_drawers().append(MockFanDrawer()) fan_list = chassis.get_all_fan_drawers()[0].get_all_fans() fan_list.append(MockFan()) fan_list.append(MockFan()) fan_info = FanInfo() fan_info.collect(chassis) Thermal.expect_cooling_level = None from sonic_platform.thermal_actions import SetAllFanSpeedAction action = SetAllFanSpeedAction() action.speed = 20 action.execute({'fan_info': fan_info}) assert Thermal.expect_cooling_level == 2
def test_fan_info(): chassis = MockChassis() chassis.make_fan_absence() fan_info = FanInfo() fan_info.collect(chassis) assert len(fan_info.get_absence_fans()) == 1 assert len(fan_info.get_presence_fans()) == 0 assert fan_info.is_status_changed() fan_list = chassis.get_all_fans() fan_list[0].presence = True fan_info.collect(chassis) assert len(fan_info.get_absence_fans()) == 0 assert len(fan_info.get_presence_fans()) == 1 assert fan_info.is_status_changed()
def test_all_fan_presence_condition(): chassis = MockChassis() chassis.make_fan_absence() fan = MockFan() fan_list = chassis.get_all_fan_drawers()[0].get_all_fans() fan_list.append(fan) fan_info = FanInfo() fan_info.collect(chassis) from sonic_platform.thermal_conditions import AllFanPresenceCondition condition = AllFanPresenceCondition() assert not condition.is_match({'fan_info': fan_info}) fan_list[0].presence = True fan_info.collect(chassis) assert condition.is_match({'fan_info': fan_info})
def test_all_fan_good_condition(): chassis = MockChassis() fan = MockFan() fan_list = chassis.get_all_fans() fan_list.append(fan) fault_fan = MockFan() fault_fan.status = False fan_list.append(fault_fan) fan_info = FanInfo() fan_info.collect(chassis) from sonic_platform.thermal_conditions import AllFanGoodCondition condition = AllFanGoodCondition() assert not condition.is_match({'fan_info': fan_info}) fault_fan.status = True fan_info.collect(chassis) assert condition.is_match({'fan_info': fan_info})
def test_any_fan_fault_condition(): chassis = MockChassis() chassis.get_all_fan_drawers().append(MockFanDrawer()) fan = MockFan() fan_list = chassis.get_all_fan_drawers()[0].get_all_fans() fan_list.append(fan) fault_fan = MockFan() fault_fan.status = False fan_list.append(fault_fan) fan_info = FanInfo() fan_info.collect(chassis) from sonic_platform.thermal_conditions import AnyFanFaultCondition condition = AnyFanFaultCondition() assert condition.is_match({'fan_info': fan_info}) fault_fan.status = True fan_info.collect(chassis) assert not condition.is_match({'fan_info': fan_info})
def test_execute_check_and_set_fan_speed_action(): chassis = MockChassis() fan_list = chassis.get_all_fans() fan_list.append(MockFan()) fan_list.append(MockFan()) fan_info = FanInfo() fan_info.collect(chassis) Thermal.check_thermal_zone_temperature = MagicMock(return_value=True) from sonic_platform.thermal_actions import CheckAndSetAllFanSpeedAction action = CheckAndSetAllFanSpeedAction() action.speed = 99 action.execute({'fan_info': fan_info}) assert fan_list[0].speed == 99 assert fan_list[1].speed == 99 Thermal.check_thermal_zone_temperature = MagicMock(return_value=False) fan_list[0].speed = 100 fan_list[1].speed = 100 action.speed = 60 action.execute({'fan_info': fan_info}) assert fan_list[0].speed == 100 assert fan_list[1].speed == 100