diff options
Diffstat (limited to 'tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py')
-rwxr-xr-x | tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py b/tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py index 0ae2990f4e1..686579ece57 100755 --- a/tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py +++ b/tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py @@ -30,17 +30,17 @@ def assert_contains(obj, field): assert field in obj, 'Must contain field "%s"' % field -def assert_string_from(obj, field, items): +def assert_value_from(obj, field, items): assert obj[field] in items, \ 'Field "%s" must be from: %s' % (field, str(items)) -def assert_string_or_list_items_from(obj, field, items): - if isinstance(obj[field], basestring): - assert_string_from(obj, field, items) +def assert_atom_or_list_items_from(obj, field, items): + if isinstance(obj[field], basestring) or isinstance(obj[field], int): + assert_value_from(obj, field, items) return - assert isinstance(obj[field], list), "%s must be a list!" % field + assert isinstance(obj[field], list), '%s must be a list' % field for allowed_value in obj[field]: assert allowed_value != '*', "Wildcard is not supported for lists!" assert allowed_value in items, \ @@ -63,8 +63,8 @@ def assert_value_unique_in(value, used_values): def assert_valid_artifact(exp_pattern, artifact_key, schema): if isinstance(schema, list): - assert_string_or_list_items_from(exp_pattern, artifact_key, - ["*"] + schema) + assert_atom_or_list_items_from(exp_pattern, artifact_key, + ["*"] + schema) return for sub_artifact_key, sub_schema in schema.iteritems(): @@ -110,7 +110,7 @@ def validate(spec_json, details): for spec_exp in spec['test_expansion']: details['object'] = spec_exp assert_non_empty_string(spec_exp, 'name') - # The name is unique in same expansion group. + # The name is unique in same expansion group. assert_value_unique_in((spec_exp['expansion'], spec_exp['name']), used_spec_names) assert_contains_only_fields(spec_exp, valid_test_expansion_fields) @@ -136,7 +136,14 @@ def validate(spec_json, details): for excluded_test_expansion in excluded_tests: assert_contains_only_fields(excluded_test_expansion, valid_test_expansion_fields) - + details['object'] = excluded_test_expansion + for artifact in test_expansion_schema: + details['test_expansion_field'] = artifact + assert_valid_artifact( + excluded_test_expansion, + artifact, + test_expansion_schema[artifact]) + del details['test_expansion_field'] del details['object'] |