[PATCH] gnu: python-w3lib: Fix build.

  • Done
  • quality assurance status badge
Details
2 participants
  • Felix Gruber
  • Ludovic Courtès
Owner
unassigned
Submitted by
Felix Gruber
Severity
normal
F
F
Felix Gruber wrote on 3 Apr 2022 20:36
(address . guix-patches@gnu.org)(name . Felix Gruber)(address . felgru@posteo.net)
20220403183639.55110-1-felgru@posteo.net
* gnu/packages/python-web.scm (python-w3lib): Fix build.
[source]: Add python-w3lib-fix-test-failure.patch.
[arguments]: Use pytest in the 'check phase.
[native-inputs]: Add python-pytest.
* gnu/packages/patches/python-w3lib-fix-test-failure.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
.../python-w3lib-fix-test-failure.patch | 60 +++++++++++++++++++
gnu/packages/python-web.scm | 11 +++-
3 files changed, 71 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/python-w3lib-fix-test-failure.patch

Toggle diff (114 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index aac7362475..6ac1ceb147 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1592,6 +1592,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-chai-drop-python2.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-poppler-qt5-fix-build.patch \
+ %D%/packages/patches/python-w3lib-fix-test-failure.patch \
%D%/packages/patches/sdcc-disable-non-free-code.patch \
%D%/packages/patches/sdl-pango-api_additions.patch \
%D%/packages/patches/sdl-pango-blit_overflow.patch \
diff --git a/gnu/packages/patches/python-w3lib-fix-test-failure.patch b/gnu/packages/patches/python-w3lib-fix-test-failure.patch
new file mode 100644
index 0000000000..f38fc749df
--- /dev/null
+++ b/gnu/packages/patches/python-w3lib-fix-test-failure.patch
@@ -0,0 +1,60 @@
+From fae6cc40e112cd13697cb0e8d79976f32c72491d Mon Sep 17 00:00:00 2001
+From: Eugenio Lacuesta <eugenio.lacuesta@gmail.com>
+Date: Wed, 10 Mar 2021 12:31:05 -0300
+Subject: [PATCH] [CI] Mark single add_or_replace_parameter test as xfail
+
+---
+This patch is based on upstream commit
+fae6cc40e112cd13697cb0e8d79976f32c72491d which is part of
+https://github.com/scrapy/w3lib/pull/166.
+
+ .gitignore | 3 ++-
+ tests/test_url.py | 25 ++++++++++++++-----------
+ 2 files changed, 16 insertions(+), 12 deletions(-)
+
+diff --git a/tests/test_url.py b/tests/test_url.py
+index 8b07c00..0f7458e 100644
+--- a/tests/test_url.py
++++ b/tests/test_url.py
+@@ -1,12 +1,14 @@
+-# -*- coding: utf-8 -*-
+ from __future__ import absolute_import
+ import os
+ import unittest
++
++import pytest
++from six.moves.urllib.parse import urlparse
++
+ from w3lib.url import (is_url, safe_url_string, safe_download_url,
+ url_query_parameter, add_or_replace_parameter, url_query_cleaner,
+ file_uri_to_path, parse_data_uri, path_to_file_uri, any_to_uri,
+ urljoin_rfc, canonicalize_url, parse_url, add_or_replace_parameters)
+-from six.moves.urllib.parse import urlparse
+
+
+ class UrlTests(unittest.TestCase):
+@@ -310,10 +311,6 @@ def test_add_or_replace_parameter(self):
+ self.assertEqual(add_or_replace_parameter(url, 'arg3', 'nv3'),
+ 'http://domain/test?arg1=v1&arg2=v2&arg3=nv3')
+
+- url = 'http://domain/test?arg1=v1;arg2=v2'
+- self.assertEqual(add_or_replace_parameter(url, 'arg1', 'v3'),
+- 'http://domain/test?arg1=v3&arg2=v2')
+-
+ self.assertEqual(add_or_replace_parameter("http://domain/moreInfo.asp?prodID=", 'prodID', '20'),
+ 'http://domain/moreInfo.asp?prodID=20')
+ url = 'http://rmc-offers.co.uk/productlist.asp?BCat=2%2C60&CatID=60'
+@@ -338,6 +335,13 @@ def test_add_or_replace_parameter(self):
+ self.assertEqual(add_or_replace_parameter(url, 'arg1', 'v3'),
+ 'http://domain/test?arg1=v3&arg2=v2')
+
++ @pytest.mark.xfail(reason="https://github.com/scrapy/w3lib/issues/164")
++ def test_add_or_replace_parameter_fail(self):
++ self.assertEqual(
++ add_or_replace_parameter('http://domain/test?arg1=v1;arg2=v2', 'arg1', 'v3'),
++ 'http://domain/test?arg1=v3&arg2=v2'
++ )
++
+ def test_add_or_replace_parameters(self):
+ url = 'http://domain/test'
+ self.assertEqual(add_or_replace_parameters(url, {'arg': 'v'}),
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 41e0d1c3d6..f77d163833 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -49,6 +49,7 @@
;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -6188,12 +6189,20 @@ communicate with Microsoft Azure Storage services.")
(origin
(method url-fetch)
(uri (pypi-uri "w3lib" version))
+ (patches (search-patches "python-w3lib-fix-test-failure.patch"))
(sha256
(base32
"1pv02lvvmgz2qb61vz1jkjc04fgm4hpfvaj5zm4i3mjp64hd1mha"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest")))))))
(native-inputs
- (list python-six))
+ (list python-pytest python-six))
(home-page "https://github.com/scrapy/w3lib")
(synopsis "Python library of web-related functions")
(description
--
2.30.2
L
L
Ludovic Courtès wrote on 5 Apr 2022 20:26
(name . Felix Gruber)(address . felgru@posteo.net)(address . 54697-done@debbugs.gnu.org)
87czhvjsiv.fsf@gnu.org
Hi,

Felix Gruber <felgru@posteo.net> skribis:

Toggle quote (7 lines)
> * gnu/packages/python-web.scm (python-w3lib): Fix build.
> [source]: Add python-w3lib-fix-test-failure.patch.
> [arguments]: Use pytest in the 'check phase.
> [native-inputs]: Add python-pytest.
> * gnu/packages/patches/python-w3lib-fix-test-failure.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.

Applied, thanks!

Ludo’.
Closed
?