From 8febacdfedd236b70d2646d7c1e266b407dd25f7 Mon Sep 17 00:00:00 2001 From: Max Rozentsveyg Date: Sat, 16 May 2020 20:49:10 -0400 Subject: [PATCH] Support checking unicode TOML --- pre_commit_hooks/check_toml.py | 3 +-- tests/check_toml_test.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pre_commit_hooks/check_toml.py b/pre_commit_hooks/check_toml.py index 51a1f15e..87496753 100644 --- a/pre_commit_hooks/check_toml.py +++ b/pre_commit_hooks/check_toml.py @@ -13,8 +13,7 @@ def main(argv: Optional[Sequence[str]] = None) -> int: retval = 0 for filename in args.filenames: try: - with open(filename) as f: - toml.load(f) + toml.load(filename) except toml.TomlDecodeError as exc: print(f'{filename}: {exc}') retval = 1 diff --git a/tests/check_toml_test.py b/tests/check_toml_test.py index 9f186d15..32837176 100644 --- a/tests/check_toml_test.py +++ b/tests/check_toml_test.py @@ -1,7 +1,7 @@ from pre_commit_hooks.check_toml import main -def test_toml_good(tmpdir): +def test_toml_bad(tmpdir): filename = tmpdir.join('f') filename.write(""" key = # INVALID @@ -12,7 +12,7 @@ def test_toml_good(tmpdir): assert ret == 1 -def test_toml_bad(tmpdir): +def test_toml_good(tmpdir): filename = tmpdir.join('f') filename.write( """ @@ -27,3 +27,10 @@ def test_toml_bad(tmpdir): ) ret = main((filename.strpath,)) assert ret == 0 + + +def test_toml_good_unicode(tmpdir): + filename = tmpdir.join('f') + filename.write_binary('letter = "\N{SNOWMAN}"\n'.encode()) + ret = main((filename.strpath,)) + assert ret == 0