Added support to verify location code and spare part number

Change-Id: I966526bca661ef759520e7c0e40bf189bee068be
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/openpower/vpd/test_redfish_vpd.robot b/openpower/vpd/test_redfish_vpd.robot
index 687e4c0..a1368c3 100644
--- a/openpower/vpd/test_redfish_vpd.robot
+++ b/openpower/vpd/test_redfish_vpd.robot
@@ -11,44 +11,60 @@
 
 *** Test Cases ***
 
-Verify VPD Data Via Redfish
-    [Documentation]  Verify VPD details via Redfish output.
-    [Tags]  Verify_VPD_Data_Via_Redfish
+Verify BMC VPD Data Via Redfish
+    [Documentation]  Verify BMC VPD details via Redfish output.
+    [Tags]  Verify_BMC_VPD_Data_Via_Redfish
     [Template]  Verify Redfish VPD Data
 
-    # Component
-    BMC
-    Chassis
-    CPU
+    # Component  Field
+    BMC          Model
+    BMC          PartNumber
+    BMC          SerialNumber
+    BMC          SparePartNumber
+    BMC          Location
+
+
+Verify Chassis VPD Data Via Redfish
+    [Documentation]  Verify Chassis VPD details via Redfish output.
+    [Tags]  Verify_Chassis_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Skipping chassis's spare part number test because it has issue.
+    # Component  Field
+    Chassis      Model
+    Chassis      PartNumber
+    Chassis      SerialNumber
+    #Chassis      SparePartNumber
+    Chassis      Location
+
+
+Verify CPU VPD Data Via Redfish
+    [Documentation]  Verify CPU VPD details via Redfish output.
+    [Tags]  Verify_CPU_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component  Field
+    CPU          Model
+    CPU          PartNumber
+    CPU          SerialNumber
+    CPU          SparePartNumber
+    CPU          Location
 
 
 *** Keywords ***
 
 Verify Redfish VPD Data
     [Documentation]  Verify Redfish VPD data of given component.
-    [Arguments]  ${component}
+    [Arguments]  ${component}  ${field}
     # Description of arguments:
     # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
+    # field           VPD field (e.g. Model, PartNumber etc.).
 
     ${component_uri}=  Set Variable If
     ...  '${component}' == 'BMC'  /redfish/v1/Managers/bmc
     ...  '${component}' == 'Chassis'  /redfish/v1/Chassis/chassis
     ...  '${component}' == 'CPU'  /redfish/v1/Systems/system/Processors/cpu0
 
-    # TODO: Verification for SparePartNumber and Location fields will be added later.
-    @{vpd_fields}=  Create List  Model  PartNumber  SerialNumber
-    FOR  ${field}  IN  @{vpd_fields}
-      Verify Redfish VPD  ${component}  ${component_uri}  ${field}
-    END
-
-
-Verify Redfish VPD
-    [Documentation]  Verify Redfish VPD of given URI.
-    [Arguments]  ${component}  ${component_uri}  ${field}
-    # Description of arguments:
-    # component_uri       Redfish VPD uri (e.g. /redfish/v1/Systems/system/Processors/cpu1).
-    # field               Redfish VPD field (Model)
-
     ${resp}=  Redfish.Get Properties  ${component_uri}
     ${vpd_field}=  Set Variable If
     ...  '${field}' == 'Model'  CC
@@ -62,5 +78,10 @@
     ...  '${component}' == 'Chassis'  /system/chassis
     ...  '${component}' == 'BMC'  /system/chassis/motherboard/ebmc_card_bmc
 
-    ${vpd_records}=  Vpdtool  -r -O ${vpd_component} -R VINI -K ${vpd_field}
-    Should Be Equal As Strings  ${resp["${field}"]}  ${vpd_records['${vpd_component}']['${vpd_field}']}
+    ${vpd_records}=  Vpdtool  -o -O ${vpd_component}
+
+    Run Keyword if  '${field}' == 'Location'
+    ...    Should Be Equal As Strings  ${resp["Location"]["PartLocation"]["ServiceLabel"]}
+    ...    ${vpd_records['${vpd_component}']['${vpd_field}']}
+    ...  ELSE
+    ...    Should Be Equal As Strings  ${resp["${field}"]}  ${vpd_records['${vpd_component}']['${vpd_field}']}