| *** Settings *** | 
 | Documentation       Get the system power supply voltage readings. | 
 |  | 
 | Resource            ../../lib/bmc_redfish_resource.robot | 
 | Resource            ../../lib/bmc_redfish_utils.robot | 
 | Resource            ../../lib/openbmc_ffdc.robot | 
 | Library             ../../lib/gen_robot_valid.py | 
 |  | 
 | Suite Setup         Suite Setup Execution | 
 | Suite Teardown      Suite Teardown Execution | 
 | Test Setup          Printn | 
 | Test Teardown       Test Teardown Execution | 
 |  | 
 |  | 
 | *** Test Cases *** | 
 |  | 
 | Verify Power Supplies Input Watts | 
 |     [Documentation]  Verify there are no invalid power supply input watt records. | 
 |     [Tags]  Verify_Power_Supplies_Input_Watts | 
 |     [Template]  Verify Watts Record | 
 |  | 
 |     # record_type   redfish_uri                       reading_type | 
 |     PowerSupplies   ${REDFISH_CHASSIS_POWER_URI}      PowerInputWatts | 
 |  | 
 |  | 
 | Verify Power Supplies Input Output Voltages | 
 |     [Documentation]  Verify there are no invalid power supply voltage records. | 
 |     [Tags]  Verify_Power_Supplies_Input_Output_Voltages | 
 |     [Template]  Verify Voltage Records | 
 |  | 
 |     # record_type   redfish_uri                        reading_type | 
 |     Voltages        ${REDFISH_CHASSIS_POWER_URI}       ReadingVolts | 
 |  | 
 |  | 
 | Verify Power Supplies Efficiency Percentage | 
 |     [Documentation]  Verify the efficiency percentage is set to correct value. | 
 |     [Tags]  Verify_Power_Supplies_Efficiency_Percentage | 
 |  | 
 |     # Example output: | 
 |     # records: | 
 |     #   [0]: | 
 |     #     [@odata.id]:                /redfish/v1/Chassis/chassis/Power#/PowerSupplies/0 | 
 |     #     [EfficiencyPercent]:        90 | 
 |     #     [IndicatorLED]:             Off | 
 |     #     [Manufacturer]: | 
 |     #     [MemberId]:                 powersupply0 | 
 |     #     [Model]:                    2B1D | 
 |     #     [Name]:                     powersupply0 | 
 |     #     [PartNumber]:               01KL779 | 
 |     #     [PowerInputWatts]:          106.0 | 
 |     #     [SerialNumber]:             75B1C2 | 
 |     #     [Status]: | 
 |     #       [Health]:                 OK | 
 |     #       [State]:                  Enabled | 
 |  | 
 |     ${records}=  Verify Valid Records  PowerSupplies  ${REDFISH_CHASSIS_POWER_URI}  EfficiencyPercent | 
 |     ${efficiency_percentages}=  Nested Get  EfficiencyPercent  ${records} | 
 |     Valid List  efficiency_percentages  [90] | 
 |  | 
 |  | 
 | *** Keywords *** | 
 |  | 
 | Verify Watts Record | 
 |     [Documentation]  Verify the power watt records. | 
 |     [Arguments]  ${record_type}  ${redfish_uri}  ${reading_type} | 
 |  | 
 |     # Description of Arguments(s): | 
 |     # record_type    The sensor record type (e.g. "PowerSupplies") | 
 |     # redfish_uri    The power supply URI (e.g. /redfish/v1/Chassis/chassis/Power) | 
 |     # reading_type   The power watt readings (e.g. "PowerInputWatts") | 
 |  | 
 |     Verify Valid Records  ${record_type}  ${redfish_uri}  ${reading_type} | 
 |  | 
 |  | 
 | Verify Voltage Records | 
 |     [Documentation]  Verify the power voltage records. | 
 |     [Arguments]  ${record_type}  ${redfish_uri}  ${reading_type} | 
 |  | 
 |     # Description of Arguments(s): | 
 |     # record_type    The sensor record type (e.g. "Voltages") | 
 |     # redfish_uri    The power supply URI (e.g. /redfish/v1/Chassis/chassis/Power) | 
 |     # reading_type   The power voltage readings (e.g. "ReadingVolts") | 
 |  | 
 |     Verify Valid Records  ${record_type}  ${redfish_uri}  ${reading_type} | 
 |  | 
 |     ${records}=  Redfish.Get Attribute  ${redfish_uri}  ${record_type} | 
 |  | 
 |     ${cmd}  Catenate  [x for x in ${records} | 
 |     ...  if not x['LowerThresholdNonCritical'] <= x['${reading_type}'] <= x['UpperThresholdNonCritical']] | 
 |     ${invalid_records}=  Evaluate  ${cmd} | 
 |  | 
 |     Valid Length  invalid_records  max_length=0 | 
 |  | 
 |  | 
 | Suite Teardown Execution | 
 |     [Documentation]  Do the post suite teardown. | 
 |  | 
 |     Redfish.Logout | 
 |  | 
 |  | 
 | Suite Setup Execution | 
 |     [Documentation]  Do test case setup tasks. | 
 |  | 
 |     Printn | 
 |     Redfish Power On  stack_mode=skip | 
 |     Redfish.Login | 
 |  | 
 |  | 
 | Test Teardown Execution | 
 |     [Documentation]  Do the post test teardown. | 
 |  | 
 |     FFDC On Test Case Fail |