def test_parse_meta_json_keys_values(stc): plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo("begin test_parse_meta_json_keys_values") # Valid methodology json input_json = get_sample_2544_json() attr1 = "CommandAddressStartValue" attr2 = "CommandAddressStepValue" attr3 = "TrafficDuration" attr4 = "ObjectIteratorCommand.ValueList" attr5 = "testGuiOnly" val1 = "198.18.1.2" val2 = "0.0.1.0" val3 = "60" val4 = ["64", "128", "256", "512", "1024", "1280", "1518"] val5 = "10" # Load the json err_str, json_dict = json_utils.load_json(input_json) assert err_str == "" assert json_dict is not None # Call the parse function key_val_dict, gui_key_val_dict = RunCmd.parse_meta_json_keys_values(json_dict) assert key_val_dict is not None assert gui_key_val_dict == {'testGuiOnly': '10'} plLogger.LogInfo("key_val_dict: " + str(key_val_dict)) assert len(key_val_dict.keys()) == 7 # Check the keys for kv_pair in zip([attr1, attr2, attr3, attr4, attr5], [val1, val2, val3, val4, val5]): assert kv_pair[0] in key_val_dict.keys() assert key_val_dict[kv_pair[0]] == kv_pair[1]
def test_parse_meta_json_keys_values_invalid_json(stc): plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo("begin test_parse_meta_json_keys_values_invalid_json") # No property_groups input_json = '''{ "methodology_key": "RFC2544THROUGHPUT", "display_name": "RFC 2544 Throughput Test", "version": "1-0-0", "feature_ids": [], "port_groups": [] }''' # Load the json err_str, json_dict = json_utils.load_json(input_json) assert err_str == "" assert json_dict is not None # Call the parse function key_val_dict, gui_key_val_dict = RunCmd.parse_meta_json_keys_values(json_dict) assert key_val_dict == {} assert gui_key_val_dict == {} # No test_properties input_json = '''{ "methodology_key": "RFC2544THROUGHPUT", "display_name": "RFC 2544 Throughput Test", "version": "1-0-0", "feature_ids": [], "port_groups": [], "property_groups": [] }''' # Load the json err_str, json_dict = json_utils.load_json(input_json) assert err_str == "" assert json_dict is not None # Call the parse function key_val_dict, gui_key_val_dict = RunCmd.parse_meta_json_keys_values(json_dict) assert key_val_dict == {} assert gui_key_val_dict == {} # Missing property_value and empty test_properties input_json = '''{ "methodology_key": "RFC2544THROUGHPUT", "display_name": "RFC 2544 Throughput Test", "version": "1-0-0", "feature_ids": [], "port_groups": [], "property_groups": [ { "prop_id": "leftEndpointConfig", "display_name": "Left Endpoint Addressing", "test_properties": [ { "prop_id": "CommandAddressStartValue" }, { "prop_id": "CommandAddressStepValue", "property_value": "0.0.1.0" } ] }, { "prop_id": "test", "display_name": "Test", "test_properties": [] } ] }''' attr1 = "CommandAddressStepValue" val1 = "0.0.1.0" # Load the json err_str, json_dict = json_utils.load_json(input_json) assert err_str == "" assert json_dict is not None # Call the parse function key_val_dict, gui_key_val_dict = RunCmd.parse_meta_json_keys_values(json_dict) assert key_val_dict is not None assert gui_key_val_dict == {} plLogger.LogInfo("key_val_dict: " + str(key_val_dict)) assert len(key_val_dict.keys()) == 1 # Check the keys for kv_pair in zip([attr1], [str(val1)]): assert kv_pair[0] in key_val_dict.keys() assert key_val_dict[kv_pair[0]] == kv_pair[1]