diff --git a/tests/unit/test_file_processor.py b/tests/unit/test_file_processor.py index b5e8323..1323011 100644 --- a/tests/unit/test_file_processor.py +++ b/tests/unit/test_file_processor.py @@ -27,15 +27,16 @@ def test_read_lines_splits_lines(): for line in lines) -def lines_from_file(tmpdir, lines): +def lines_from_file(tmpdir, contents): f = tmpdir.join('f.py') - f.write(''.join(lines)) + # be careful to write the bytes exactly to avoid newline munging + f.write_binary(contents) return processor.FileProcessor(f.strpath, options_from()).lines def test_read_lines_universal_newlines(tmpdir): r"""Verify that line endings are translated to \n.""" - lines = lines_from_file(tmpdir, ['# coding: utf-8\r\n', 'x = 1\r\n']) + lines = lines_from_file(tmpdir, b'# coding: utf-8\r\nx = 1\r\n') assert lines == ['# coding: utf-8\n', 'x = 1\n'] @@ -43,13 +44,13 @@ def test_read_lines_incorrect_utf_16(tmpdir): """Verify that a file which incorrectly claims it is utf16 is still read as latin-1. """ - lines = lines_from_file(tmpdir, ['# coding: utf16\n', 'x = 1\n']) + lines = lines_from_file(tmpdir, b'# coding: utf16\nx = 1\n') assert lines == ['# coding: utf16\n', 'x = 1\n'] def test_read_lines_unknown_encoding(tmpdir): """Verify that an unknown encoding is still read as latin-1.""" - lines = lines_from_file(tmpdir, ['# coding: fake-encoding\n', 'x = 1\n']) + lines = lines_from_file(tmpdir, b'# coding: fake-encoding\nx = 1\n') assert lines == ['# coding: fake-encoding\n', 'x = 1\n']