|  | *** 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 |