From 9185838a25b950a2abccfa25c33093eb127b160b Mon Sep 17 00:00:00 2001 From: Brendan Abel <007brendan@gmail.com> Date: Sat, 13 Jun 2020 23:04:10 -0700 Subject: [PATCH 1/3] test: add test for building with unicode filenames --- .../packageunicode/No\303\253l.jpg" | Bin 0 -> 11361 bytes .../packageunicode/packageunicode/__init__.py | 5 ++++ tests/samples/packageunicode/pyproject.toml | 9 +++++++ tests/test_build.py | 22 ++++++++++++++++++ 4 files changed, 36 insertions(+) create mode 100644 "tests/samples/packageunicode/packageunicode/No\303\253l.jpg" create mode 100644 tests/samples/packageunicode/packageunicode/__init__.py create mode 100644 tests/samples/packageunicode/pyproject.toml diff --git "a/tests/samples/packageunicode/packageunicode/No\303\253l.jpg" "b/tests/samples/packageunicode/packageunicode/No\303\253l.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..7a8aaf9677c755850ca6a0419e69de44a9c8a153 GIT binary patch literal 11361 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 oN1y5)efl=2,<4"] +build-backend = "flit_core.buildapi" + +[tool.flit.metadata] +module = "packageunicode" +author = "Sir Robin" +author-email = "robin@camelot.uk" +home-page = "http://github.com/sirrobin/package2" diff --git a/tests/test_build.py b/tests/test_build.py index c17ba649..7d2e7f77 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + from pathlib import Path import pytest import shutil @@ -12,6 +14,7 @@ LIST_FILES_TEMPLATE = """\ #!{python} +# -*- coding: utf-8 -*- import sys from os.path import join if '--deleted' not in sys.argv: @@ -69,3 +72,22 @@ def test_build_module_no_docstring(): with pytest.raises(common.NoDocstringError) as exc_info: build.main(pyproject) assert 'no_docstring.py' in str(exc_info.value) + +def test_build_package_with_unicode(copy_sample): + list_files_template = """\ +#!{python} +# -*- coding: utf-8 -*- +import sys +from os.path import join +if '--deleted' not in sys.argv: + files = ['pyproject.toml', 'packageunicode/__init__.py', 'packageunicode/Noël.jpg'] + print('\\0'.join(files), end='\\0') +""" + td = copy_sample('packageunicode') + (td / '.git').mkdir() # Fake a git repo + + with MockCommand('git', list_files_template.format(python=sys.executable)): + res = build.main(td / 'pyproject.toml', formats={'sdist'}) + + # Compare str path to work around pathlib/pathlib2 mismatch on Py 3.5 + assert [str(p) for p in (td / 'dist').iterdir()] == [str(res.sdist.file)] From d2cd1b4458afdaee672611b3e30995d94dcc749c Mon Sep 17 00:00:00 2001 From: Brendan Abel <007brendan@gmail.com> Date: Sat, 20 Jun 2020 23:05:02 -0700 Subject: [PATCH 2/3] fix: double-escape unicode for test on windows --- tests/test_build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_build.py b/tests/test_build.py index 7d2e7f77..64824813 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -80,7 +80,7 @@ def test_build_package_with_unicode(copy_sample): import sys from os.path import join if '--deleted' not in sys.argv: - files = ['pyproject.toml', 'packageunicode/__init__.py', 'packageunicode/Noël.jpg'] + files = ['pyproject.toml', 'packageunicode/__init__.py', 'packageunicode/No\\u00ebl.jpg'] print('\\0'.join(files), end='\\0') """ td = copy_sample('packageunicode') From 9bd2c37e85e7074af8ae56a1816cdbc14690df59 Mon Sep 17 00:00:00 2001 From: Brendan Abel <007brendan@gmail.com> Date: Sat, 20 Jun 2020 23:52:40 -0700 Subject: [PATCH 3/3] fix: fix test for windows --- tests/test_build.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/test_build.py b/tests/test_build.py index 64824813..4fd69361 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from pathlib import Path import pytest @@ -76,11 +75,14 @@ def test_build_module_no_docstring(): def test_build_package_with_unicode(copy_sample): list_files_template = """\ #!{python} -# -*- coding: utf-8 -*- import sys from os.path import join if '--deleted' not in sys.argv: - files = ['pyproject.toml', 'packageunicode/__init__.py', 'packageunicode/No\\u00ebl.jpg'] + files = ['pyproject.toml', 'packageunicode/__init__.py'] + if sys.platform == 'win32': + files.append('packageunicode/No\\xc3\\xabl.jpg') + else: + files.append('packageunicode/No\\u00ebl.jpg') print('\\0'.join(files), end='\\0') """ td = copy_sample('packageunicode')