summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2020-05-28 20:33:31 +0200
committerMichał Górny <mgorny@gentoo.org>2020-05-28 20:35:28 +0200
commit41fca3b9f6fca3210cb8241009b84ea344ceb489 (patch)
tree47003260412585c85837cb971672543827c6719f /dev-python/pip
parentdev-python/s3transfer: Take maintainership (diff)
downloadgentoo-41fca3b9f6fca3210cb8241009b84ea344ceb489.tar.gz
gentoo-41fca3b9f6fca3210cb8241009b84ea344ceb489.tar.bz2
gentoo-41fca3b9f6fca3210cb8241009b84ea344ceb489.zip
dev-python/pip: Backport test fix for big endian
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/pip')
-rw-r--r--dev-python/pip/files/pip-20.1.1-test-endian.patch78
-rw-r--r--dev-python/pip/pip-20.1.1.ebuild1
2 files changed, 79 insertions, 0 deletions
diff --git a/dev-python/pip/files/pip-20.1.1-test-endian.patch b/dev-python/pip/files/pip-20.1.1-test-endian.patch
new file mode 100644
index 000000000000..b6aea145656f
--- /dev/null
+++ b/dev-python/pip/files/pip-20.1.1-test-endian.patch
@@ -0,0 +1,78 @@
+From b30dd1e04e1f37901733f1be0a5a1e02c466ad0c Mon Sep 17 00:00:00 2001
+From: gutsytechster <prashantsharma161198@gmail.com>
+Date: Wed, 15 Apr 2020 19:54:48 +0530
+Subject: [PATCH] fix(tests/unit): Update tests to be endian safe
+
+This updates `test_path_to_display` and `test_str_to_display__encoding`
+to use the endian safe expected result instead of the hardcoded one.
+
+This fixes https://github.com/pypa/pip/issues/7921
+---
+ tests/unit/test_compat.py | 8 +++++++-
+ tests/unit/test_utils.py | 16 +++++++++++++---
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/tests/unit/test_compat.py b/tests/unit/test_compat.py
+index 1f31bc5c..b13087a1 100644
+--- a/tests/unit/test_compat.py
++++ b/tests/unit/test_compat.py
+@@ -2,6 +2,7 @@
+
+ import locale
+ import os
++import sys
+
+ import pytest
+
+@@ -91,8 +92,13 @@ def test_str_to_display__decode_error(monkeypatch, caplog):
+ # Encode with an incompatible encoding.
+ data = u'ab'.encode('utf-16')
+ actual = str_to_display(data)
++ # Keep the expected value endian safe
++ if sys.byteorder == "little":
++ expected = "\\xff\\xfea\x00b\x00"
++ elif sys.byteorder == "big":
++ expected = "\\xfe\\xff\x00a\x00b"
+
+- assert actual == u'\\xff\\xfea\x00b\x00', (
++ assert actual == expected, (
+ # Show the encoding for easier troubleshooting.
+ 'encoding: {!r}'.format(locale.getpreferredencoding())
+ )
+diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
+index 7d74a664..ebabd29e 100644
+--- a/tests/unit/test_utils.py
++++ b/tests/unit/test_utils.py
+@@ -375,6 +375,18 @@ def test_rmtree_retries_for_3sec(tmpdir, monkeypatch):
+ rmtree('foo')
+
+
++if sys.byteorder == "little":
++ expected_byte_string = (
++ u"b'\\xff\\xfe/\\x00p\\x00a\\x00t\\x00h\\x00/"
++ "\\x00d\\x00\\xe9\\x00f\\x00'"
++ )
++elif sys.byteorder == "big":
++ expected_byte_string = (
++ u"b'\\xfe\\xff\\x00/\\x00p\\x00a\\x00t\\x00h\\"
++ "x00/\\x00d\\x00\\xe9\\x00f'"
++ )
++
++
+ @pytest.mark.parametrize('path, fs_encoding, expected', [
+ (None, None, None),
+ # Test passing a text (unicode) string.
+@@ -383,9 +395,7 @@ def test_rmtree_retries_for_3sec(tmpdir, monkeypatch):
+ (u'/path/déf'.encode('utf-8'), 'utf-8', u'/path/déf'),
+ # Test a bytes object with a character that can't be decoded.
+ (u'/path/déf'.encode('utf-8'), 'ascii', u"b'/path/d\\xc3\\xa9f'"),
+- (u'/path/déf'.encode('utf-16'), 'utf-8',
+- u"b'\\xff\\xfe/\\x00p\\x00a\\x00t\\x00h\\x00/"
+- "\\x00d\\x00\\xe9\\x00f\\x00'"),
++ (u'/path/déf'.encode('utf-16'), 'utf-8', expected_byte_string),
+ ])
+ def test_path_to_display(monkeypatch, path, fs_encoding, expected):
+ monkeypatch.setattr(sys, 'getfilesystemencoding', lambda: fs_encoding)
+--
+2.26.2
+
diff --git a/dev-python/pip/pip-20.1.1.ebuild b/dev-python/pip/pip-20.1.1.ebuild
index 2d53216220c2..adcd0cbcffde 100644
--- a/dev-python/pip/pip-20.1.1.ebuild
+++ b/dev-python/pip/pip-20.1.1.ebuild
@@ -56,6 +56,7 @@ DEPEND="
python_prepare_all() {
local PATCHES=(
"${FILESDIR}/${PN}-19.3-disable-version-check.patch"
+ "${FILESDIR}/${P}-test-endian.patch"
)
if ! use vanilla; then
PATCHES+=( "${FILESDIR}/pip-20.0.2-disable-system-install.patch" )