From f7f6d349a7216777907a3769641b63d9ebe3782b Mon Sep 17 00:00:00 2001 From: mattip Date: Sat, 7 Aug 2021 23:06:53 +0300 Subject: [PATCH 1/2] use text gitattributes and context managers for tests --- .gitattributes | 2 ++ tests/lib3/test_appliance.py | 3 +- tests/lib3/test_canonical.py | 9 ++++-- tests/lib3/test_constructor.py | 9 ++++-- tests/lib3/test_emitter.py | 12 +++++--- tests/lib3/test_errors.py | 17 ++++++---- tests/lib3/test_input_output.py | 31 +++++++++++-------- tests/lib3/test_mark.py | 3 +- tests/lib3/test_multi_constructor.py | 6 ++-- tests/lib3/test_reader.py | 12 +++++--- tests/lib3/test_recursive.py | 3 +- tests/lib3/test_representer.py | 3 +- tests/lib3/test_resolver.py | 33 ++++++++++++-------- tests/lib3/test_sort_keys.py | 6 ++-- tests/lib3/test_structure.py | 42 +++++++++++++++---------- tests/lib3/test_tokens.py | 15 +++++---- tests/lib3/test_yaml_ext.py | 46 +++++++++++++++++----------- 17 files changed, 158 insertions(+), 94 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..19ad84cc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +tests/data/* -text + diff --git a/tests/lib3/test_appliance.py b/tests/lib3/test_appliance.py index b6f956db..37099061 100644 --- a/tests/lib3/test_appliance.py +++ b/tests/lib3/test_appliance.py @@ -103,7 +103,8 @@ def display(results, verbose): for filename in filenames: sys.stdout.write('-'*75+'\n') sys.stdout.write('%s:\n' % filename) - data = open(filename, 'r', errors='replace').read() + with open(filename, 'r', errors='replace') as fp: + data = fp.read() sys.stdout.write(data) if data and data[-1] != '\n': sys.stdout.write('\n') diff --git a/tests/lib3/test_canonical.py b/tests/lib3/test_canonical.py index a3b11534..a7103591 100644 --- a/tests/lib3/test_canonical.py +++ b/tests/lib3/test_canonical.py @@ -2,7 +2,8 @@ import yaml, canonical def test_canonical_scanner(canonical_filename, verbose=False): - data = open(canonical_filename, 'rb').read() + with open(canonical_filename, 'rb') as fp: + data = fp.read() tokens = list(yaml.canonical_scan(data)) assert tokens, tokens if verbose: @@ -12,7 +13,8 @@ def test_canonical_scanner(canonical_filename, verbose=False): test_canonical_scanner.unittest = ['.canonical'] def test_canonical_parser(canonical_filename, verbose=False): - data = open(canonical_filename, 'rb').read() + with open(canonical_filename, 'rb') as fp: + data = fp.read() events = list(yaml.canonical_parse(data)) assert events, events if verbose: @@ -22,7 +24,8 @@ def test_canonical_parser(canonical_filename, verbose=False): test_canonical_parser.unittest = ['.canonical'] def test_canonical_error(data_filename, canonical_filename, verbose=False): - data = open(data_filename, 'rb').read() + with open(data_filename, 'rb') as fp: + data = fp.read() try: output = list(yaml.canonical_load_all(data)) except yaml.YAMLError as exc: diff --git a/tests/lib3/test_constructor.py b/tests/lib3/test_constructor.py index f9a50770..6a0cb370 100644 --- a/tests/lib3/test_constructor.py +++ b/tests/lib3/test_constructor.py @@ -254,10 +254,12 @@ def test_constructor_types(data_filename, code_filename, verbose=False): native1 = None native2 = None try: - native1 = list(yaml.load_all(open(data_filename, 'rb'), Loader=MyLoader)) + with open(data_filename, 'rb') as fp: + native1 = list(yaml.load_all(fp, Loader=MyLoader)) if len(native1) == 1: native1 = native1[0] - native2 = _load_code(open(code_filename, 'rb').read()) + with open(code_filename, 'rb') as fp: + native2 = _load_code(fp.read()) try: if native1 == native2: return @@ -281,7 +283,8 @@ def test_constructor_types(data_filename, code_filename, verbose=False): def test_subclass_blacklist_types(data_filename, verbose=False): _make_objects() try: - yaml.load(open(data_filename, 'rb').read(), MyFullLoader) + with open(data_filename, 'rb') as fp: + yaml.load(fp.read(), MyFullLoader) except yaml.YAMLError as exc: if verbose: print("%s:" % exc.__class__.__name__, exc) diff --git a/tests/lib3/test_emitter.py b/tests/lib3/test_emitter.py index 90d1652d..4bfeb8a7 100644 --- a/tests/lib3/test_emitter.py +++ b/tests/lib3/test_emitter.py @@ -15,7 +15,8 @@ def _compare_events(events1, events2): assert event1.value == event2.value, (event1, event2) def test_emitter_on_data(data_filename, canonical_filename, verbose=False): - events = list(yaml.parse(open(data_filename, 'rb'))) + with open(data_filename, 'rb') as fp: + events = list(yaml.parse(fp)) output = yaml.emit(events) if verbose: print("OUTPUT:") @@ -26,7 +27,8 @@ def test_emitter_on_data(data_filename, canonical_filename, verbose=False): test_emitter_on_data.unittest = ['.data', '.canonical'] def test_emitter_on_canonical(canonical_filename, verbose=False): - events = list(yaml.parse(open(canonical_filename, 'rb'))) + with open(canonical_filename, 'rb') as fp: + events = list(yaml.parse(fp)) for canonical in [False, True]: output = yaml.emit(events, canonical=canonical) if verbose: @@ -39,7 +41,8 @@ def test_emitter_on_canonical(canonical_filename, verbose=False): def test_emitter_styles(data_filename, canonical_filename, verbose=False): for filename in [data_filename, canonical_filename]: - events = list(yaml.parse(open(filename, 'rb'))) + with open(filename, 'rb') as fp: + events = list(yaml.parse(fp)) for flow_style in [False, True]: for style in ['|', '>', '"', '\'', '']: styled_events = [] @@ -86,7 +89,8 @@ def construct_event(self, node): EventsLoader.add_constructor(None, EventsLoader.construct_event) def test_emitter_events(events_filename, verbose=False): - events = list(yaml.load(open(events_filename, 'rb'), Loader=EventsLoader)) + with open(events_filename, 'rb') as fp: + events = list(yaml.load(fp, Loader=EventsLoader)) output = yaml.emit(events) if verbose: print("OUTPUT:") diff --git a/tests/lib3/test_errors.py b/tests/lib3/test_errors.py index 9ef9bbe9..3d96ba3f 100644 --- a/tests/lib3/test_errors.py +++ b/tests/lib3/test_errors.py @@ -3,7 +3,8 @@ def test_loader_error(error_filename, verbose=False): try: - list(yaml.load_all(open(error_filename, 'rb'), yaml.FullLoader)) + with open(error_filename, 'rb') as fp: + list(yaml.load_all(fp, yaml.FullLoader)) except yaml.YAMLError as exc: if verbose: print("%s:" % exc.__class__.__name__, exc) @@ -14,7 +15,8 @@ def test_loader_error(error_filename, verbose=False): def test_loader_error_string(error_filename, verbose=False): try: - list(yaml.load_all(open(error_filename, 'rb').read(), yaml.FullLoader)) + with open(error_filename, 'rb') as fp: + list(yaml.load_all(fp.read(), yaml.FullLoader)) except yaml.YAMLError as exc: if verbose: print("%s:" % exc.__class__.__name__, exc) @@ -25,7 +27,8 @@ def test_loader_error_string(error_filename, verbose=False): def test_loader_error_single(error_filename, verbose=False): try: - yaml.load(open(error_filename, 'rb').read(), yaml.FullLoader) + with open(error_filename, 'rb') as fp: + yaml.load(fp.read(), yaml.FullLoader) except yaml.YAMLError as exc: if verbose: print("%s:" % exc.__class__.__name__, exc) @@ -35,8 +38,9 @@ def test_loader_error_single(error_filename, verbose=False): test_loader_error_single.unittest = ['.single-loader-error'] def test_emitter_error(error_filename, verbose=False): - events = list(yaml.load(open(error_filename, 'rb'), - Loader=test_emitter.EventsLoader)) + with open(error_filename, 'rb') as fp: + events = list(yaml.load(fp, + Loader=test_emitter.EventsLoader)) try: yaml.emit(events) except yaml.YAMLError as exc: @@ -48,7 +52,8 @@ def test_emitter_error(error_filename, verbose=False): test_emitter_error.unittest = ['.emitter-error'] def test_dumper_error(error_filename, verbose=False): - code = open(error_filename, 'rb').read() + with open(error_filename, 'rb') as fp: + code = fp.read() try: import yaml from io import StringIO diff --git a/tests/lib3/test_input_output.py b/tests/lib3/test_input_output.py index 52ac3428..f8c7ba82 100644 --- a/tests/lib3/test_input_output.py +++ b/tests/lib3/test_input_output.py @@ -3,7 +3,8 @@ import codecs, io, tempfile, os, os.path def test_unicode_input(unicode_filename, verbose=False): - data = open(unicode_filename, 'rb').read().decode('utf-8') + with open(unicode_filename, 'rb') as fp: + data = fp.read().decode('utf-8') value = ' '.join(data.split()) output = yaml.full_load(data) assert output == value, (output, value) @@ -23,7 +24,8 @@ def test_unicode_input(unicode_filename, verbose=False): test_unicode_input.unittest = ['.unicode'] def test_unicode_input_errors(unicode_filename, verbose=False): - data = open(unicode_filename, 'rb').read().decode('utf-8') + with open(unicode_filename, 'rb') as fp: + data = fp.read().decode('utf-8') for input in [data.encode('utf-16-be'), data.encode('utf-16-le'), codecs.BOM_UTF8+data.encode('utf-16-be'), @@ -47,7 +49,8 @@ def test_unicode_input_errors(unicode_filename, verbose=False): test_unicode_input_errors.unittest = ['.unicode'] def test_unicode_output(unicode_filename, verbose=False): - data = open(unicode_filename, 'rb').read().decode('utf-8') + with open(unicode_filename, 'rb') as fp: + data = fp.read().decode('utf-8') value = ' '.join(data.split()) for allow_unicode in [False, True]: data1 = yaml.dump(value, allow_unicode=allow_unicode) @@ -82,7 +85,8 @@ def test_unicode_output(unicode_filename, verbose=False): test_unicode_output.unittest = ['.unicode'] def test_file_output(unicode_filename, verbose=False): - data = open(unicode_filename, 'rb').read().decode('utf-8') + with open(unicode_filename, 'rb') as fp: + data = fp.read().decode('utf-8') handle, filename = tempfile.mkstemp() os.close(handle) try: @@ -92,14 +96,14 @@ def test_file_output(unicode_filename, verbose=False): stream = io.BytesIO() yaml.dump(data, stream, encoding='utf-16-le', allow_unicode=True) data2 = stream.getvalue().decode('utf-16-le')[1:] - stream = open(filename, 'w', encoding='utf-16-le') - yaml.dump(data, stream, allow_unicode=True) - stream.close() - data3 = open(filename, 'r', encoding='utf-16-le').read() - stream = open(filename, 'wb') - yaml.dump(data, stream, encoding='utf-8', allow_unicode=True) - stream.close() - data4 = open(filename, 'r', encoding='utf-8').read() + with open(filename, 'w', encoding='utf-16-le') as stream: + yaml.dump(data, stream, allow_unicode=True) + with open(filename, 'r', encoding='utf-16-le') as fp: + data3 = fp.read() + with open(filename, 'wb') as stream: + yaml.dump(data, stream, encoding='utf-8', allow_unicode=True) + with open(filename, 'r', encoding='utf-8') as fp: + data4 = fp.read() assert data1 == data2, (data1, data2) assert data1 == data3, (data1, data3) assert data1 == data4, (data1, data4) @@ -110,7 +114,8 @@ def test_file_output(unicode_filename, verbose=False): test_file_output.unittest = ['.unicode'] def test_unicode_transfer(unicode_filename, verbose=False): - data = open(unicode_filename, 'rb').read().decode('utf-8') + with open(unicode_filename, 'rb') as fp: + data = fp.read().decode('utf-8') for encoding in [None, 'utf-8', 'utf-16-be', 'utf-16-le']: input = data if encoding is not None: diff --git a/tests/lib3/test_mark.py b/tests/lib3/test_mark.py index 09eea2ed..3a5f1817 100644 --- a/tests/lib3/test_mark.py +++ b/tests/lib3/test_mark.py @@ -2,7 +2,8 @@ import yaml def test_marks(marks_filename, verbose=False): - inputs = open(marks_filename, 'r').read().split('---\n')[1:] + with open(marks_filename, 'r') as fp: + inputs = fp.read().split('---\n')[1:] for input in inputs: index = 0 line = 0 diff --git a/tests/lib3/test_multi_constructor.py b/tests/lib3/test_multi_constructor.py index f6e28fe0..b3471a60 100644 --- a/tests/lib3/test_multi_constructor.py +++ b/tests/lib3/test_multi_constructor.py @@ -29,8 +29,10 @@ class Multi2(yaml.FullLoader): pass def test_multi_constructor(input_filename, code_filename, verbose=False): - input = open(input_filename, 'rb').read().decode('utf-8') - native = _load_code(open(code_filename, 'rb').read()) + with open(input_filename, 'rb') as fp: + input = fp.read().decode('utf-8') + with open(code_filename, 'rb') as fp: + native = _load_code(fp.read()) # default multi constructor for ! and !! tags Multi1.add_multi_constructor('!', myconstructor1) diff --git a/tests/lib3/test_reader.py b/tests/lib3/test_reader.py index c07b346b..8cbc35cb 100644 --- a/tests/lib3/test_reader.py +++ b/tests/lib3/test_reader.py @@ -13,18 +13,22 @@ def _run_reader(data, verbose): raise AssertionError("expected an exception") def test_stream_error(error_filename, verbose=False): - _run_reader(open(error_filename, 'rb'), verbose) - _run_reader(open(error_filename, 'rb').read(), verbose) + with open(error_filename, 'rb') as fp: + _run_reader(fp, verbose) + with open(error_filename, 'rb') as fp: + _run_reader(fp.read(), verbose) for encoding in ['utf-8', 'utf-16-le', 'utf-16-be']: try: - data = open(error_filename, 'rb').read().decode(encoding) + with open(error_filename, 'rb') as fp: + data = fp.read().decode(encoding) break except UnicodeDecodeError: pass else: return _run_reader(data, verbose) - _run_reader(open(error_filename, encoding=encoding), verbose) + with open(error_filename, encoding=encoding) as fp: + _run_reader(fp, verbose) test_stream_error.unittest = ['.stream-error'] diff --git a/tests/lib3/test_recursive.py b/tests/lib3/test_recursive.py index 08042c81..517593a6 100644 --- a/tests/lib3/test_recursive.py +++ b/tests/lib3/test_recursive.py @@ -24,7 +24,8 @@ def __setstate__(self, state): def test_recursive(recursive_filename, verbose=False): context = globals().copy() - exec(open(recursive_filename, 'rb').read(), context) + with open(recursive_filename, 'rb') as fp: + exec(fp.read(), context) value1 = context['value'] output1 = None value2 = None diff --git a/tests/lib3/test_representer.py b/tests/lib3/test_representer.py index 10d4a8fc..3f5f032d 100644 --- a/tests/lib3/test_representer.py +++ b/tests/lib3/test_representer.py @@ -7,7 +7,8 @@ def test_representer_types(code_filename, verbose=False): test_constructor._make_objects() for allow_unicode in [False, True]: for encoding in ['utf-8', 'utf-16-be', 'utf-16-le']: - native1 = test_constructor._load_code(open(code_filename, 'rb').read()) + with open(code_filename, 'rb') as fp: + native1 = test_constructor._load_code(fp.read()) native2 = None try: output = yaml.dump(native1, Dumper=test_constructor.MyDumper, diff --git a/tests/lib3/test_resolver.py b/tests/lib3/test_resolver.py index f059dabb..fb4a03ba 100644 --- a/tests/lib3/test_resolver.py +++ b/tests/lib3/test_resolver.py @@ -6,8 +6,10 @@ def test_implicit_resolver(data_filename, detect_filename, verbose=False): correct_tag = None node = None try: - correct_tag = open(detect_filename, 'r').read().strip() - node = yaml.compose(open(data_filename, 'rb')) + with open(detect_filename, 'r') as fp: + correct_tag = fp.read().strip() + with open(data_filename, 'rb') as fp: + node = yaml.compose(fp) assert isinstance(node, yaml.SequenceNode), node for scalar in node.value: assert isinstance(scalar, yaml.ScalarNode), scalar @@ -58,8 +60,10 @@ def _convert_node(node): def test_path_resolver_loader(data_filename, path_filename, verbose=False): _make_path_loader_and_dumper() - nodes1 = list(yaml.compose_all(open(data_filename, 'rb').read(), Loader=MyLoader)) - nodes2 = list(yaml.compose_all(open(path_filename, 'rb').read())) + with open(data_filename, 'rb') as fp: + nodes1 = list(yaml.compose_all(fp.read(), Loader=MyLoader)) + with open(path_filename, 'rb') as fp: + nodes2 = list(yaml.compose_all(fp.read())) try: for node1, node2 in zip(nodes1, nodes2): data1 = _convert_node(node1) @@ -74,15 +78,18 @@ def test_path_resolver_loader(data_filename, path_filename, verbose=False): def test_path_resolver_dumper(data_filename, path_filename, verbose=False): _make_path_loader_and_dumper() for filename in [data_filename, path_filename]: - output = yaml.serialize_all(yaml.compose_all(open(filename, 'rb')), Dumper=MyDumper) - if verbose: - print(output) - nodes1 = yaml.compose_all(output) - nodes2 = yaml.compose_all(open(data_filename, 'rb')) - for node1, node2 in zip(nodes1, nodes2): - data1 = _convert_node(node1) - data2 = _convert_node(node2) - assert data1 == data2, (data1, data2) + with open(filename, 'rb') as fp: + output = yaml.serialize_all(yaml.compose_all(fp), + Dumper=MyDumper) + if verbose: + print(output) + nodes1 = yaml.compose_all(output) + with open(data_filename, 'rb') as fp: + nodes2 = yaml.compose_all(fp) + for node1, node2 in zip(nodes1, nodes2): + data1 = _convert_node(node1) + data2 = _convert_node(node2) + assert data1 == data2, (data1, data2) test_path_resolver_dumper.unittest = ['.data', '.path'] diff --git a/tests/lib3/test_sort_keys.py b/tests/lib3/test_sort_keys.py index f3f8a740..3b558f46 100644 --- a/tests/lib3/test_sort_keys.py +++ b/tests/lib3/test_sort_keys.py @@ -3,8 +3,10 @@ import sys def test_sort_keys(input_filename, sorted_filename, verbose=False): - input = open(input_filename, 'rb').read().decode('utf-8') - sorted = open(sorted_filename, 'rb').read().decode('utf-8') + with open(input_filename, 'rb') as fp: + input = fp.read().decode('utf-8') + with open(sorted_filename, 'rb') as fp: + sorted = fp.read().decode('utf-8') data = yaml.load(input, Loader=yaml.FullLoader) dump_sorted = yaml.dump(data, default_flow_style=False, sort_keys=True) dump_unsorted = yaml.dump(data, default_flow_style=False, sort_keys=False) diff --git a/tests/lib3/test_structure.py b/tests/lib3/test_structure.py index 6d6f59d0..b8806cb7 100644 --- a/tests/lib3/test_structure.py +++ b/tests/lib3/test_structure.py @@ -34,15 +34,17 @@ def _convert_structure(loader): def test_structure(data_filename, structure_filename, verbose=False): nodes1 = [] - nodes2 = eval(open(structure_filename, 'r').read()) + with open(structure_filename, 'r') as fp: + nodes2 = eval(fp.read()) try: - loader = yaml.Loader(open(data_filename, 'rb')) - while loader.check_event(): - if loader.check_event(yaml.StreamStartEvent, yaml.StreamEndEvent, - yaml.DocumentStartEvent, yaml.DocumentEndEvent): - loader.get_event() - continue - nodes1.append(_convert_structure(loader)) + with open(data_filename, 'rb') as fp: + loader = yaml.Loader(fp) + while loader.check_event(): + if loader.check_event(yaml.StreamStartEvent, yaml.StreamEndEvent, + yaml.DocumentStartEvent, yaml.DocumentEndEvent): + loader.get_event() + continue + nodes1.append(_convert_structure(loader)) if len(nodes1) == 1: nodes1 = nodes1[0] assert nodes1 == nodes2, (nodes1, nodes2) @@ -71,8 +73,10 @@ def test_parser(data_filename, canonical_filename, verbose=False): events1 = None events2 = None try: - events1 = list(yaml.parse(open(data_filename, 'rb'))) - events2 = list(yaml.canonical_parse(open(canonical_filename, 'rb'))) + with open(data_filename, 'rb') as fp: + events1 = list(yaml.parse(fp)) + with open(canonical_filename, 'rb') as fp: + events2 = list(yaml.canonical_parse(fp)) _compare_events(events1, events2) finally: if verbose: @@ -87,8 +91,10 @@ def test_parser_on_canonical(canonical_filename, verbose=False): events1 = None events2 = None try: - events1 = list(yaml.parse(open(canonical_filename, 'rb'))) - events2 = list(yaml.canonical_parse(open(canonical_filename, 'rb'))) + with open(canonical_filename, 'rb') as fp: + events1 = list(yaml.parse(fp)) + with open(canonical_filename, 'rb') as fp: + events2 = list(yaml.canonical_parse(fp)) _compare_events(events1, events2, full=True) finally: if verbose: @@ -117,8 +123,10 @@ def test_composer(data_filename, canonical_filename, verbose=False): nodes1 = None nodes2 = None try: - nodes1 = list(yaml.compose_all(open(data_filename, 'rb'))) - nodes2 = list(yaml.canonical_compose_all(open(canonical_filename, 'rb'))) + with open(data_filename, 'rb') as fp: + nodes1 = list(yaml.compose_all(fp)) + with open(canonical_filename, 'rb') as fp: + nodes2 = list(yaml.canonical_compose_all(fp)) assert len(nodes1) == len(nodes2), (len(nodes1), len(nodes2)) for node1, node2 in zip(nodes1, nodes2): _compare_nodes(node1, node2) @@ -169,8 +177,10 @@ def test_constructor(data_filename, canonical_filename, verbose=False): native1 = None native2 = None try: - native1 = list(yaml.load_all(open(data_filename, 'rb'), Loader=MyLoader)) - native2 = list(yaml.load_all(open(canonical_filename, 'rb'), Loader=MyCanonicalLoader)) + with open(data_filename, 'rb') as fp: + native1 = list(yaml.load_all(fp, Loader=MyLoader)) + with open(canonical_filename, 'rb') as fp: + native2 = list(yaml.load_all(fp, Loader=MyCanonicalLoader)) assert native1 == native2, (native1, native2) finally: if verbose: diff --git a/tests/lib3/test_tokens.py b/tests/lib3/test_tokens.py index 828945a9..edebd257 100644 --- a/tests/lib3/test_tokens.py +++ b/tests/lib3/test_tokens.py @@ -44,11 +44,13 @@ def test_tokens(data_filename, tokens_filename, verbose=False): tokens1 = [] - tokens2 = open(tokens_filename, 'r').read().split() + with open(tokens_filename, 'r') as fp: + tokens2 = fp.read().split() try: - for token in yaml.scan(open(data_filename, 'rb')): - if not isinstance(token, (yaml.StreamStartToken, yaml.StreamEndToken)): - tokens1.append(_replaces[token.__class__]) + with open(data_filename, 'rb') as fp: + for token in yaml.scan(fp): + if not isinstance(token, (yaml.StreamStartToken, yaml.StreamEndToken)): + tokens1.append(_replaces[token.__class__]) finally: if verbose: print("TOKENS1:", ' '.join(tokens1)) @@ -63,8 +65,9 @@ def test_scanner(data_filename, canonical_filename, verbose=False): for filename in [data_filename, canonical_filename]: tokens = [] try: - for token in yaml.scan(open(filename, 'rb')): - tokens.append(token.__class__.__name__) + with open(filename, 'rb') as fp: + for token in yaml.scan(fp): + tokens.append(token.__class__.__name__) finally: if verbose: pprint.pprint(tokens) diff --git a/tests/lib3/test_yaml_ext.py b/tests/lib3/test_yaml_ext.py index 264df0df..8f114974 100644 --- a/tests/lib3/test_yaml_ext.py +++ b/tests/lib3/test_yaml_ext.py @@ -154,14 +154,18 @@ def _compare_scanners(py_data, c_data, verbose): pprint.pprint(c_tokens) def test_c_scanner(data_filename, canonical_filename, verbose=False): - _compare_scanners(open(data_filename, 'rb'), - open(data_filename, 'rb'), verbose) - _compare_scanners(open(data_filename, 'rb').read(), - open(data_filename, 'rb').read(), verbose) - _compare_scanners(open(canonical_filename, 'rb'), - open(canonical_filename, 'rb'), verbose) - _compare_scanners(open(canonical_filename, 'rb').read(), - open(canonical_filename, 'rb').read(), verbose) + with open(data_filename, 'rb') as fp1: + with open(data_filename, 'rb') as fp2: + _compare_scanners(fp1, fp2 , verbose) + with open(data_filename, 'rb') as fp1: + with open(data_filename, 'rb') as fp2: + _compare_scanners(fp1.read(), fp2.read(), verbose) + with open(canonical_filename, 'rb') as fp1: + with open(canonical_filename, 'rb') as fp2: + _compare_scanners(fp1, fp2, verbose) + with open(canonical_filename, 'rb') as fp1: + with open(canonical_filename, 'rb') as fp2: + _compare_scanners(fp1.read(), fp2.read(), verbose) test_c_scanner.unittest = ['.data', '.canonical'] test_c_scanner.skip = ['.skip-ext'] @@ -187,14 +191,18 @@ def _compare_parsers(py_data, c_data, verbose): pprint.pprint(c_events) def test_c_parser(data_filename, canonical_filename, verbose=False): - _compare_parsers(open(data_filename, 'rb'), - open(data_filename, 'rb'), verbose) - _compare_parsers(open(data_filename, 'rb').read(), - open(data_filename, 'rb').read(), verbose) - _compare_parsers(open(canonical_filename, 'rb'), - open(canonical_filename, 'rb'), verbose) - _compare_parsers(open(canonical_filename, 'rb').read(), - open(canonical_filename, 'rb').read(), verbose) + with open(data_filename, 'rb') as fp1: + with open(data_filename, 'rb') as fp2: + _compare_parsers(fp1, fp2, verbose) + with open(data_filename, 'rb') as fp1: + with open(data_filename, 'rb') as fp2: + _compare_parsers(fp1.read(), fp2.read(), verbose) + with open(canonical_filename, 'rb') as fp1: + with open(canonical_filename, 'rb') as fp2: + _compare_parsers(fp1, fp2, verbose) + with open(canonical_filename, 'rb') as fp1: + with open(canonical_filename, 'rb') as fp2: + _compare_parsers(fp1.read(), fp2.read(), verbose) test_c_parser.unittest = ['.data', '.canonical'] test_c_parser.skip = ['.skip-ext'] @@ -232,8 +240,10 @@ def _compare_emitters(data, verbose): pprint.pprint(c_events) def test_c_emitter(data_filename, canonical_filename, verbose=False): - _compare_emitters(open(data_filename, 'rb').read(), verbose) - _compare_emitters(open(canonical_filename, 'rb').read(), verbose) + with open(data_filename, 'rb') as fp: + _compare_emitters(fp.read(), verbose) + with open(canonical_filename, 'rb') as fp: + _compare_emitters(fp.read(), verbose) test_c_emitter.unittest = ['.data', '.canonical'] test_c_emitter.skip = ['.skip-ext'] From 78dd7a1ca3b6f7213f4829d8f2807a64523ad3f5 Mon Sep 17 00:00:00 2001 From: mattip Date: Thu, 12 Aug 2021 08:17:26 +0300 Subject: [PATCH 2/2] pin cibuildwheel to a version that supports python2.7 --- packaging/build/macos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/build/macos.sh b/packaging/build/macos.sh index 3e629ab4..92ea0ea9 100755 --- a/packaging/build/macos.sh +++ b/packaging/build/macos.sh @@ -7,7 +7,7 @@ set -eux export PYBIN=/usr/bin/python3 ${PYBIN} -V -${PYBIN} -m pip install -U --user cibuildwheel +${PYBIN} -m pip install -U --user "cibuildwheel<2.0" # run cibuildwheel; we can skip CIBW_ENVIRONMENT since the Mac version will directly inherit the envvars we set to # force Cython and --with-libyaml. cibuildwheel will install Cython before each version is built. We expect that # the calling environment will set CIBW_SKIP or CIBW_BUILD to control which Pythons we build for. (eg, CIBW_SKIP='pp* cp27* cp35*')