def test_set_power_good(self): mock_logger = mock.MagicMock() mock_psu = MockPsu("PSU 1", 0, True, True) psu_status = psud.PsuStatus(mock_logger, mock_psu) assert psu_status.power_good == False # Test toggling power_good to True ret = psu_status.set_power_good(True) assert ret == True assert psu_status.power_good == True # Test attempting to set power_good to the same as the current value (return value should be False) ret = psu_status.set_power_good(True) assert ret == False assert psu_status.power_good == True # Test toggling power_good to False ret = psu_status.set_power_good(False) assert ret == True assert psu_status.power_good == False # Test attempting to set power_good to the same as the current value (return value should be False) ret = psu_status.set_power_good(False) assert ret == False assert psu_status.power_good == False
def test_update_led_color(self): mock_psu = MockPsu("PSU 1", 0, True, True) mock_logger = mock.MagicMock() psu_status = psud.PsuStatus(mock_logger, mock_psu) daemon_psud = psud.DaemonPsud(SYSLOG_IDENTIFIER) daemon_psud.psu_tbl = mock.MagicMock() daemon_psud._update_psu_fan_led_status = mock.MagicMock() # If psud.platform_chassis is None, _update_psu_fan_led_status() should do nothing psud.platform_chassis = None daemon_psud._update_led_color() assert daemon_psud.psu_tbl.set.call_count == 0 assert daemon_psud._update_psu_fan_led_status.call_count == 0 psud.platform_chassis = MockChassis() daemon_psud.psu_status_dict[1] = psu_status expected_fvp = psud.swsscommon.FieldValuePairs([('led_status', MockPsu.STATUS_LED_COLOR_OFF)]) daemon_psud._update_led_color() assert daemon_psud.psu_tbl.set.call_count == 1 daemon_psud.psu_tbl.set.assert_called_with(psud.PSU_INFO_KEY_TEMPLATE.format(1), expected_fvp) assert daemon_psud._update_psu_fan_led_status.call_count == 1 daemon_psud._update_psu_fan_led_status.assert_called_with(mock_psu, 1) daemon_psud.psu_tbl.reset_mock() daemon_psud._update_psu_fan_led_status.reset_mock() mock_psu.set_status_led(MockPsu.STATUS_LED_COLOR_GREEN) expected_fvp = psud.swsscommon.FieldValuePairs([('led_status', MockPsu.STATUS_LED_COLOR_GREEN)]) daemon_psud._update_led_color() assert daemon_psud.psu_tbl.set.call_count == 1 daemon_psud.psu_tbl.set.assert_called_with(psud.PSU_INFO_KEY_TEMPLATE.format(1), expected_fvp) assert daemon_psud._update_psu_fan_led_status.call_count == 1 daemon_psud._update_psu_fan_led_status.assert_called_with(mock_psu, 1) daemon_psud.psu_tbl.reset_mock() daemon_psud._update_psu_fan_led_status.reset_mock() mock_psu.set_status_led(MockPsu.STATUS_LED_COLOR_RED) expected_fvp = psud.swsscommon.FieldValuePairs([('led_status', MockPsu.STATUS_LED_COLOR_RED)]) daemon_psud._update_led_color() assert daemon_psud.psu_tbl.set.call_count == 1 daemon_psud.psu_tbl.set.assert_called_with(psud.PSU_INFO_KEY_TEMPLATE.format(1), expected_fvp) assert daemon_psud._update_psu_fan_led_status.call_count == 1 daemon_psud._update_psu_fan_led_status.assert_called_with(mock_psu, 1) daemon_psud.psu_tbl.reset_mock() daemon_psud._update_psu_fan_led_status.reset_mock() # Test exception handling mock_psu.get_status_led = mock.Mock(side_effect=NotImplementedError) expected_fvp = psud.swsscommon.FieldValuePairs([('led_status', psud.NOT_AVAILABLE)]) daemon_psud._update_led_color() assert daemon_psud.psu_tbl.set.call_count == 1 daemon_psud.psu_tbl.set.assert_called_with(psud.PSU_INFO_KEY_TEMPLATE.format(1), expected_fvp) assert daemon_psud._update_psu_fan_led_status.call_count == 1 daemon_psud._update_psu_fan_led_status.assert_called_with(mock_psu, 1)
def test_set_psu_led(self): mock_logger = mock.MagicMock() mock_psu = MockPsu("PSU 1", 0, True, True) psu_status = psud.PsuStatus(mock_logger, mock_psu) daemon_psud = psud.DaemonPsud(SYSLOG_IDENTIFIER) psu_status.presence = True psu_status.power_good = True psu_status.voltage_good = True psu_status.temperature_good = True daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_GREEN psu_status.presence = False daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_RED psu_status.presence = True daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_GREEN psu_status.power_good = False daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_RED psu_status.power_good = True daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_GREEN psu_status.voltage_good = False daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_RED psu_status.voltage_good = True daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_GREEN psu_status.temperature_good = False daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_RED psu_status.temperature_good = True daemon_psud._set_psu_led(mock_psu, psu_status) assert mock_psu.get_status_led() == mock_psu.STATUS_LED_COLOR_GREEN # Test set_status_led not implemented mock_psu.set_status_led = mock.MagicMock( side_effect=NotImplementedError) daemon_psud.log_warning = mock.MagicMock() daemon_psud._set_psu_led(mock_psu, psu_status) assert daemon_psud.log_warning.call_count == 1 daemon_psud.log_warning.assert_called_with( "set_status_led() not implemented")
def test_set_temperature(self): mock_logger = mock.MagicMock() mock_psu = MockPsu("PSU 1", 0, True, True) psu_status = psud.PsuStatus(mock_logger, mock_psu) assert psu_status.temperature_good == False # Pass in a good temperature ret = psu_status.set_temperature(20.123, 50.0) assert ret == True assert psu_status.temperature_good == True # Pass in a another good temperature successively (return value should be False) ret = psu_status.set_temperature(31.456, 50.0) assert ret == False assert psu_status.temperature_good == True # Pass in a high temperature ret = psu_status.set_temperature(50.001, 50.0) assert ret == True assert psu_status.temperature_good == False # Pass in a another bad temperature successively (return value should be False) ret = psu_status.set_temperature(50.0, 50.0) assert ret == False assert psu_status.temperature_good == False # Pass in a good (high edge case) temperature ret = psu_status.set_temperature(49.999, 50.0) assert ret == True assert psu_status.temperature_good == True # Test passing parameters as None when temperature_good == True ret = psu_status.set_temperature(psud.NOT_AVAILABLE, 50.0) assert ret == False assert psu_status.temperature_good == True ret = psu_status.set_temperature(20.123, psud.NOT_AVAILABLE) assert ret == False assert psu_status.temperature_good == True # Test passing parameters as None when temperature_good == False psu_status.temperature_good = False ret = psu_status.set_temperature(psud.NOT_AVAILABLE, 50.0) assert ret == False assert psu_status.temperature_good == True psu_status.temperature_good = False ret = psu_status.set_temperature(20.123, psud.NOT_AVAILABLE) assert ret == False assert psu_status.temperature_good == True
def test_is_ok(self): mock_logger = mock.MagicMock() mock_psu = MockPsu("PSU 1", 0, True, True) psu_status = psud.PsuStatus(mock_logger, mock_psu) psu_status.presence = True psu_status.power_good = True psu_status.voltage_good = True psu_status.temperature_good = True ret = psu_status.is_ok() assert ret == True psu_status.presence = False ret = psu_status.is_ok() assert ret == False psu_status.presence = True ret = psu_status.is_ok() assert ret == True psu_status.power_good = False ret = psu_status.is_ok() assert ret == False psu_status.power_good = True ret = psu_status.is_ok() assert ret == True psu_status.voltage_good = False ret = psu_status.is_ok() assert ret == False psu_status.voltage_good = True ret = psu_status.is_ok() assert ret == True psu_status.temperature_good = False ret = psu_status.is_ok() assert ret == False psu_status.temperature_good = True ret = psu_status.is_ok() assert ret == True
def test_set_presence(self): mock_logger = mock.MagicMock() mock_psu = MockPsu("PSU 1", 0, True, True) psu_status = psud.PsuStatus(mock_logger, mock_psu) assert psu_status.presence == False # Test toggling presence to True ret = psu_status.set_presence(True) assert ret == True assert psu_status.presence == True # Test toggling presence to False ret = psu_status.set_presence(False) assert ret == True assert psu_status.presence == False # Test attempting to set presence to the same as the current value ret = psu_status.set_presence(False) assert ret == False assert psu_status.presence == False
def test_set_voltage(self): mock_logger = mock.MagicMock() mock_psu = MockPsu("PSU 1", 0, True, True) psu_status = psud.PsuStatus(mock_logger, mock_psu) assert psu_status.voltage_good == False # Pass in a good voltage ret = psu_status.set_voltage(12.0, 12.5, 11.5) assert ret == True assert psu_status.voltage_good == True # Pass in a another good voltage successively (return value should be False) ret = psu_status.set_voltage(11.9, 12.5, 11.5) assert ret == False assert psu_status.voltage_good == True # Pass in a high voltage ret = psu_status.set_voltage(12.6, 12.5, 11.5) assert ret == True assert psu_status.voltage_good == False # Pass in a another bad voltage successively (return value should be False) ret = psu_status.set_voltage(12.7, 12.5, 11.5) assert ret == False assert psu_status.voltage_good == False # Pass in a good (high edge case) voltage ret = psu_status.set_voltage(12.5, 12.5, 11.5) assert ret == True assert psu_status.voltage_good == True # Pass in a low voltage ret = psu_status.set_voltage(11.4, 12.5, 11.5) assert ret == True assert psu_status.voltage_good == False # Pass in a good (low edge case) voltage ret = psu_status.set_voltage(11.5, 12.5, 11.5) assert ret == True assert psu_status.voltage_good == True # Test passing parameters as None when voltage_good == True ret = psu_status.set_voltage(psud.NOT_AVAILABLE, 12.5, 11.5) assert ret == False assert psu_status.voltage_good == True ret = psu_status.set_voltage(11.5, psud.NOT_AVAILABLE, 11.5) assert ret == False assert psu_status.voltage_good == True ret = psu_status.set_voltage(11.5, 12.5, psud.NOT_AVAILABLE) assert ret == False assert psu_status.voltage_good == True # Test passing parameters as None when voltage_good == False psu_status.voltage_good = False ret = psu_status.set_voltage(psud.NOT_AVAILABLE, 12.5, 11.5) assert ret == False assert psu_status.voltage_good == True psu_status.voltage_good = False ret = psu_status.set_voltage(11.5, psud.NOT_AVAILABLE, 11.5) assert ret == False assert psu_status.voltage_good == True psu_status.voltage_good = False ret = psu_status.set_voltage(11.5, 12.5, psud.NOT_AVAILABLE) assert ret == False assert psu_status.voltage_good == True