summaryrefslogtreecommitdiff
path: root/setuptools/tests/test_archive_util.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/test_archive_util.py')
-rw-r--r--setuptools/tests/test_archive_util.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/setuptools/tests/test_archive_util.py b/setuptools/tests/test_archive_util.py
new file mode 100644
index 00000000..7f996244
--- /dev/null
+++ b/setuptools/tests/test_archive_util.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+import tarfile
+import io
+
+import pytest
+
+from setuptools import archive_util
+
+
+@pytest.fixture
+def tarfile_with_unicode(tmpdir):
+ """
+ Create a tarfile containing only a file whose name is
+ a zero byte file called testimàˆge.png.
+ """
+ tarobj = io.BytesIO()
+
+ with tarfile.open(fileobj=tarobj, mode="w:gz") as tgz:
+ data = b""
+
+ filename = "testimàˆge.png"
+
+ t = tarfile.TarInfo(filename)
+ t.size = len(data)
+
+ tgz.addfile(t, io.BytesIO(data))
+
+ target = tmpdir / 'unicode-pkg-1.0.tar.gz'
+ with open(str(target), mode='wb') as tf:
+ tf.write(tarobj.getvalue())
+ return str(target)
+
+
+@pytest.mark.xfail(reason="#710 and #712")
+def test_unicode_files(tarfile_with_unicode, tmpdir):
+ target = tmpdir / 'out'
+ archive_util.unpack_archive(tarfile_with_unicode, str(target))