def test_show_platform_ssdhealth(duthosts, rand_one_dut_hostname): """ @summary: Verify output of `show platform ssdhealth` """ duthost = duthosts[rand_one_dut_hostname] cmd = " ".join([CMD_SHOW_PLATFORM, "ssdhealth"]) logging.info("Verifying output of '{}' ...".format(cmd)) ssdhealth_output_lines = duthost.command(cmd)["stdout_lines"] ssdhealth_dict = util.parse_colon_speparated_lines(ssdhealth_output_lines) expected_fields = set(["Device Model", "Health", "Temperature"]) actual_fields = set(ssdhealth_dict.keys()) missing_fields = expected_fields - actual_fields pytest_assert( len(missing_fields) == 0, "Output missing fields: {}".format(repr(missing_fields))) unexpected_fields = actual_fields - expected_fields pytest_assert( len(unexpected_fields) == 0, "Unexpected fields in output: {}".format(repr(unexpected_fields))) # TODO: Test values against platform-specific expected data instead of testing for missing values for key in expected_fields: pytest_assert(ssdhealth_dict[key], "Missing value for '{}'".format(key))
def test_show_platform_summary(duthosts, rand_one_dut_hostname): """ @summary: Verify output of `show platform summary` """ duthost = duthosts[rand_one_dut_hostname] cmd = " ".join([CMD_SHOW_PLATFORM, "summary"]) logging.info("Verifying output of '{}' ...".format(cmd)) summary_output_lines = duthost.command(cmd)["stdout_lines"] summary_dict = util.parse_colon_speparated_lines(summary_output_lines) expected_fields = set(["Platform", "HwSKU", "ASIC"]) actual_fields = set(summary_dict.keys()) new_field = set(["ASIC Count"]) missing_fields = expected_fields - actual_fields pytest_assert( len(missing_fields) == 0, "Output missing fields: {}".format(repr(missing_fields))) unexpected_fields = actual_fields - expected_fields pytest_assert( ((unexpected_fields == new_field) or len(unexpected_fields) == 0), "Unexpected fields in output: {}".format(repr(unexpected_fields))) # TODO: Test values against platform-specific expected data instead of testing for missing values for key in expected_fields: pytest_assert(summary_dict[key], "Missing value for '{}'".format(key))
def test_show_platform_summary(duthosts, enum_rand_one_per_hwsku_hostname, dut_vars): """ @summary: Verify output of `show platform summary` """ duthost = duthosts[enum_rand_one_per_hwsku_hostname] cmd = " ".join([CMD_SHOW_PLATFORM, "summary"]) logging.info("Verifying output of '{}' on '{}'...".format(cmd, duthost.hostname)) summary_output_lines = duthost.command(cmd)["stdout_lines"] summary_dict = util.parse_colon_speparated_lines(summary_output_lines) expected_fields = set(["Platform", "HwSKU", "ASIC"]) actual_fields = set(summary_dict.keys()) new_field = set(["ASIC Count"]) missing_fields = expected_fields - actual_fields pytest_assert(len(missing_fields) == 0, "Output missing fields: {} on '{}'".format(repr(missing_fields), duthost.hostname)) unexpected_fields = actual_fields - expected_fields pytest_assert(((unexpected_fields == new_field) or len(unexpected_fields) == 0), "Unexpected fields in output: {} on '{}'".format(repr(unexpected_fields), duthost.hostname)) # Testing for missing values for key in expected_fields: pytest_assert(summary_dict[key], "Missing value for '{}' on '{}'".format(key, duthost.hostname)) # Testings values against values defined in the inventory if present in the inventory. # hwsku based on 'hwsku' or 'sonic_hwsku' inventory variable. # platform based on 'sonic_hw_platform' inventory variable. # asic based on 'asic_type' inventory variable. # num_asic on 'num_asics' inventory variable expected_hwsku = dut_vars['hwsku'] if 'hwsku' in dut_vars else None if not expected_hwsku: # Lets try 'sonic_hwsku' as well expected_hwsku = dut_vars['sonic_hwsku'] if 'sonic_hwsku' in dut_vars else None expected_platform = dut_vars['sonic_hw_platform'] if 'sonic_hw_platform' in dut_vars else None expected_asic = dut_vars['asic_type'] if 'asic_type' in dut_vars else None expected_num_asic = str(dut_vars['num_asics']) if 'num_asics' in dut_vars else None expected_fields_values = {expected_platform, expected_hwsku, expected_asic} if len(unexpected_fields) != 0: expected_fields_values.add(expected_num_asic) actual_fields_values = set(summary_dict.values()) diff_fields_values = expected_fields_values.difference(actual_fields_values) pytest_assert((len(diff_fields_values) == 0 or (len(diff_fields_values) == 1 and diff_fields_values.pop() is None)), "Unexpected value of fields, actual={}, expected={} on host '{}'".format(actual_fields_values, expected_fields_values, duthost.hostname))