aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py')
-rwxr-xr-xtests/wpt/web-platform-tests/mixed-content/generic/tools/spec_validator.py25
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']