1a5f9918aSopenharmony_ci
2a5f9918aSopenharmony_ciimport yaml, canonical
3a5f9918aSopenharmony_ci
4a5f9918aSopenharmony_cidef test_canonical_scanner(canonical_filename, verbose=False):
5a5f9918aSopenharmony_ci    with open(canonical_filename, 'rb') as file:
6a5f9918aSopenharmony_ci        data = file.read()
7a5f9918aSopenharmony_ci    tokens = list(yaml.canonical_scan(data))
8a5f9918aSopenharmony_ci    assert tokens, tokens
9a5f9918aSopenharmony_ci    if verbose:
10a5f9918aSopenharmony_ci        for token in tokens:
11a5f9918aSopenharmony_ci            print(token)
12a5f9918aSopenharmony_ci
13a5f9918aSopenharmony_citest_canonical_scanner.unittest = ['.canonical']
14a5f9918aSopenharmony_ci
15a5f9918aSopenharmony_cidef test_canonical_parser(canonical_filename, verbose=False):
16a5f9918aSopenharmony_ci    with open(canonical_filename, 'rb') as file:
17a5f9918aSopenharmony_ci        data = file.read()
18a5f9918aSopenharmony_ci    events = list(yaml.canonical_parse(data))
19a5f9918aSopenharmony_ci    assert events, events
20a5f9918aSopenharmony_ci    if verbose:
21a5f9918aSopenharmony_ci        for event in events:
22a5f9918aSopenharmony_ci            print(event)
23a5f9918aSopenharmony_ci
24a5f9918aSopenharmony_citest_canonical_parser.unittest = ['.canonical']
25a5f9918aSopenharmony_ci
26a5f9918aSopenharmony_cidef test_canonical_error(data_filename, canonical_filename, verbose=False):
27a5f9918aSopenharmony_ci    with open(data_filename, 'rb') as file:
28a5f9918aSopenharmony_ci        data = file.read()
29a5f9918aSopenharmony_ci    try:
30a5f9918aSopenharmony_ci        output = list(yaml.canonical_load_all(data))
31a5f9918aSopenharmony_ci    except yaml.YAMLError as exc:
32a5f9918aSopenharmony_ci        if verbose:
33a5f9918aSopenharmony_ci            print(exc)
34a5f9918aSopenharmony_ci    else:
35a5f9918aSopenharmony_ci        raise AssertionError("expected an exception")
36a5f9918aSopenharmony_ci
37a5f9918aSopenharmony_citest_canonical_error.unittest = ['.data', '.canonical']
38a5f9918aSopenharmony_citest_canonical_error.skip = ['.empty']
39a5f9918aSopenharmony_ci
40a5f9918aSopenharmony_ciif __name__ == '__main__':
41a5f9918aSopenharmony_ci    import test_appliance
42a5f9918aSopenharmony_ci    test_appliance.run(globals())
43a5f9918aSopenharmony_ci
44