diff options
Diffstat (limited to '_test/lib/test_structure.py')
-rw-r--r-- | _test/lib/test_structure.py | 72 |
1 files changed, 35 insertions, 37 deletions
diff --git a/_test/lib/test_structure.py b/_test/lib/test_structure.py index 2656bbb..470d267 100644 --- a/_test/lib/test_structure.py +++ b/_test/lib/test_structure.py @@ -1,36 +1,33 @@ -from __future__ import absolute_import -from __future__ import print_function -import ruamel.yaml as yaml +import ruamel.yaml import canonical # NOQA import pprint -from ruamel.yaml.compat import text_type, PY3 def _convert_structure(loader): - if loader.check_event(yaml.ScalarEvent): + if loader.check_event(ruamel.yaml.ScalarEvent): event = loader.get_event() if event.tag or event.anchor or event.value: return True else: return None - elif loader.check_event(yaml.SequenceStartEvent): + elif loader.check_event(ruamel.yaml.SequenceStartEvent): loader.get_event() sequence = [] - while not loader.check_event(yaml.SequenceEndEvent): + while not loader.check_event(ruamel.yaml.SequenceEndEvent): sequence.append(_convert_structure(loader)) loader.get_event() return sequence - elif loader.check_event(yaml.MappingStartEvent): + elif loader.check_event(ruamel.yaml.MappingStartEvent): loader.get_event() mapping = [] - while not loader.check_event(yaml.MappingEndEvent): + while not loader.check_event(ruamel.yaml.MappingEndEvent): key = _convert_structure(loader) value = _convert_structure(loader) mapping.append((key, value)) loader.get_event() return mapping - elif loader.check_event(yaml.AliasEvent): + elif loader.check_event(ruamel.yaml.AliasEvent): loader.get_event() return '*' else: @@ -40,17 +37,17 @@ def _convert_structure(loader): def test_structure(data_filename, structure_filename, verbose=False): nodes1 = [] - with open(structure_filename, 'r' if PY3 else 'rb') as fp: + with open(structure_filename, 'r') as fp: nodes2 = eval(fp.read()) try: with open(data_filename, 'rb') as fp: - loader = yaml.Loader(fp) + loader = ruamel.yaml.Loader(fp) while loader.check_event(): if loader.check_event( - yaml.StreamStartEvent, - yaml.StreamEndEvent, - yaml.DocumentStartEvent, - yaml.DocumentEndEvent, + ruamel.yaml.StreamStartEvent, + ruamel.yaml.StreamEndEvent, + ruamel.yaml.DocumentStartEvent, + ruamel.yaml.DocumentEndEvent, ): loader.get_event() continue @@ -73,12 +70,12 @@ def _compare_events(events1, events2, full=False): assert len(events1) == len(events2), (len(events1), len(events2)) for event1, event2 in zip(events1, events2): assert event1.__class__ == event2.__class__, (event1, event2) - if isinstance(event1, yaml.AliasEvent) and full: + if isinstance(event1, ruamel.yaml.AliasEvent) and full: assert event1.anchor == event2.anchor, (event1, event2) - if isinstance(event1, (yaml.ScalarEvent, yaml.CollectionStartEvent)): - if (event1.tag not in [None, u'!'] and event2.tag not in [None, u'!']) or full: + if isinstance(event1, (ruamel.yaml.ScalarEvent, ruamel.yaml.CollectionStartEvent)): + if (event1.tag not in [None, '!'] and event2.tag not in [None, '!']) or full: assert event1.tag == event2.tag, (event1, event2) - if isinstance(event1, yaml.ScalarEvent): + if isinstance(event1, ruamel.yaml.ScalarEvent): assert event1.value == event2.value, (event1, event2) @@ -87,9 +84,9 @@ def test_parser(data_filename, canonical_filename, verbose=False): events2 = None try: with open(data_filename, 'rb') as fp0: - events1 = list(yaml.parse(fp0)) + events1 = list(ruamel.yaml.parse(fp0)) with open(canonical_filename, 'rb') as fp0: - events2 = list(yaml.canonical_parse(fp0)) + events2 = list(ruamel.yaml.canonical_parse(fp0)) _compare_events(events1, events2) finally: if verbose: @@ -107,9 +104,9 @@ def test_parser_on_canonical(canonical_filename, verbose=False): events2 = None try: with open(canonical_filename, 'rb') as fp0: - events1 = list(yaml.parse(fp0)) + events1 = list(ruamel.yaml.parse(fp0)) with open(canonical_filename, 'rb') as fp0: - events2 = list(yaml.canonical_parse(fp0)) + events2 = list(ruamel.yaml.canonical_parse(fp0)) _compare_events(events1, events2, full=True) finally: if verbose: @@ -125,7 +122,7 @@ test_parser_on_canonical.unittest = ['.canonical'] def _compare_nodes(node1, node2): assert node1.__class__ == node2.__class__, (node1, node2) assert node1.tag == node2.tag, (node1, node2) - if isinstance(node1, yaml.ScalarNode): + if isinstance(node1, ruamel.yaml.ScalarNode): assert node1.value == node2.value, (node1, node2) else: assert len(node1.value) == len(node2.value), (node1, node2) @@ -142,9 +139,9 @@ def test_composer(data_filename, canonical_filename, verbose=False): nodes2 = None try: with open(data_filename, 'rb') as fp0: - nodes1 = list(yaml.compose_all(fp0)) + nodes1 = list(ruamel.yaml.compose_all(fp0)) with open(canonical_filename, 'rb') as fp0: - nodes2 = list(yaml.canonical_compose_all(fp0)) + nodes2 = list(ruamel.yaml.canonical_compose_all(fp0)) assert len(nodes1) == len(nodes2), (len(nodes1), len(nodes2)) for node1, node2 in zip(nodes1, nodes2): _compare_nodes(node1, node2) @@ -162,39 +159,39 @@ test_composer.unittest = ['.data', '.canonical'] def _make_loader(): global MyLoader - class MyLoader(yaml.Loader): + class MyLoader(ruamel.yaml.Loader): def construct_sequence(self, node): - return tuple(yaml.Loader.construct_sequence(self, node)) + return tuple(ruamel.yaml.Loader.construct_sequence(self, node)) def construct_mapping(self, node): pairs = self.construct_pairs(node) - pairs.sort(key=(lambda i: text_type(i))) + pairs.sort(key=(lambda i: str(i))) return pairs def construct_undefined(self, node): return self.construct_scalar(node) - MyLoader.add_constructor(u'tag:yaml.org,2002:map', MyLoader.construct_mapping) + MyLoader.add_constructor('tag:yaml.org,2002:map', MyLoader.construct_mapping) MyLoader.add_constructor(None, MyLoader.construct_undefined) def _make_canonical_loader(): global MyCanonicalLoader - class MyCanonicalLoader(yaml.CanonicalLoader): + class MyCanonicalLoader(ruamel.yaml.CanonicalLoader): def construct_sequence(self, node): - return tuple(yaml.CanonicalLoader.construct_sequence(self, node)) + return tuple(ruamel.yaml.CanonicalLoader.construct_sequence(self, node)) def construct_mapping(self, node): pairs = self.construct_pairs(node) - pairs.sort(key=(lambda i: text_type(i))) + pairs.sort(key=(lambda i: str(i))) return pairs def construct_undefined(self, node): return self.construct_scalar(node) MyCanonicalLoader.add_constructor( - u'tag:yaml.org,2002:map', MyCanonicalLoader.construct_mapping + 'tag:yaml.org,2002:map', MyCanonicalLoader.construct_mapping ) MyCanonicalLoader.add_constructor(None, MyCanonicalLoader.construct_undefined) @@ -204,11 +201,12 @@ def test_constructor(data_filename, canonical_filename, verbose=False): _make_canonical_loader() native1 = None native2 = None + yaml = YAML(typ='safe') try: with open(data_filename, 'rb') as fp0: - native1 = list(yaml.load_all(fp0, Loader=MyLoader)) + native1 = list(yaml.load(fp0, Loader=MyLoader)) with open(canonical_filename, 'rb') as fp0: - native2 = list(yaml.load_all(fp0, Loader=MyCanonicalLoader)) + native2 = list(yaml.load(fp0, Loader=MyCanonicalLoader)) assert native1 == native2, (native1, native2) finally: if verbose: |