From 6757973b61766cdb28225733f1c12702fe0886db Mon Sep 17 00:00:00 2001 From: Laerte Pereira Date: Sun, 11 Dec 2022 09:11:55 -0300 Subject: [PATCH 1/3] fix test_follow_whitespace_* tests --- tests/test_http_response.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/test_http_response.py b/tests/test_http_response.py index f51f3d988..cb65a6a7e 100644 --- a/tests/test_http_response.py +++ b/tests/test_http_response.py @@ -2,14 +2,16 @@ import codecs import unittest from unittest import mock +from pkg_resources import parse_version +from w3lib import __version__ as w3lib_version from w3lib.encoding import resolve_encoding -from scrapy.http import (Request, Response, TextResponse, HtmlResponse, - XmlResponse, Headers) +from scrapy.exceptions import NotSupported +from scrapy.http import (Headers, HtmlResponse, Request, Response, + TextResponse, XmlResponse) +from scrapy.link import Link from scrapy.selector import Selector from scrapy.utils.python import to_unicode -from scrapy.exceptions import NotSupported -from scrapy.link import Link from tests import get_testdata @@ -180,12 +182,18 @@ class BaseResponseTest(unittest.TestCase): self.assertRaises(ValueError, r.follow, None) def test_follow_whitespace_url(self): + target_url = 'http://example.com/foo' + if parse_version(w3lib_version) < parse_version("2.1.1"): + target_url += '%20' self._assert_followed_url('foo ', - 'http://example.com/foo%20') + target_url) def test_follow_whitespace_link(self): + target_url = 'http://example.com/foo' + if parse_version(w3lib_version) < parse_version("2.1.1"): + target_url += '%20' self._assert_followed_url(Link('http://example.com/foo '), - 'http://example.com/foo%20') + target_url) def test_follow_flags(self): res = self.response_class('http://example.com/') From 0dbd1d9b81399b624d8f8081dbc4ba08e66993e7 Mon Sep 17 00:00:00 2001 From: Laerte Pereira Date: Mon, 12 Dec 2022 08:58:40 -0300 Subject: [PATCH 2/3] use xfail, switch to packaging to parse version --- tests/test_http_response.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/tests/test_http_response.py b/tests/test_http_response.py index cb65a6a7e..891b38f6e 100644 --- a/tests/test_http_response.py +++ b/tests/test_http_response.py @@ -2,7 +2,8 @@ import codecs import unittest from unittest import mock -from pkg_resources import parse_version +from packaging.version import Version as parse_version +from pytest import mark from w3lib import __version__ as w3lib_version from w3lib.encoding import resolve_encoding @@ -181,19 +182,23 @@ class BaseResponseTest(unittest.TestCase): r = self.response_class("http://example.com") self.assertRaises(ValueError, r.follow, None) + @mark.xfail( + parse_version(w3lib_version) >= parse_version("2.1.1"), + reason="https://github.com/scrapy/w3lib/pull/207", + strict=True, + ) def test_follow_whitespace_url(self): - target_url = 'http://example.com/foo' - if parse_version(w3lib_version) < parse_version("2.1.1"): - target_url += '%20' self._assert_followed_url('foo ', - target_url) + 'http://example.com/foo%20') + @mark.xfail( + parse_version(w3lib_version) >= parse_version("2.1.1"), + reason="https://github.com/scrapy/w3lib/pull/207", + strict=True, + ) def test_follow_whitespace_link(self): - target_url = 'http://example.com/foo' - if parse_version(w3lib_version) < parse_version("2.1.1"): - target_url += '%20' self._assert_followed_url(Link('http://example.com/foo '), - target_url) + 'http://example.com/foo%20') def test_follow_flags(self): res = self.response_class('http://example.com/') From e099572cec6bb9aa7e164b3bff9fd8723286fbad Mon Sep 17 00:00:00 2001 From: Laerte Pereira Date: Mon, 12 Dec 2022 09:56:50 -0300 Subject: [PATCH 3/3] change xfail condition --- tests/test_http_response.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_http_response.py b/tests/test_http_response.py index 891b38f6e..74e170ec0 100644 --- a/tests/test_http_response.py +++ b/tests/test_http_response.py @@ -183,22 +183,22 @@ class BaseResponseTest(unittest.TestCase): self.assertRaises(ValueError, r.follow, None) @mark.xfail( - parse_version(w3lib_version) >= parse_version("2.1.1"), + parse_version(w3lib_version) < parse_version("2.1.1"), reason="https://github.com/scrapy/w3lib/pull/207", strict=True, ) def test_follow_whitespace_url(self): self._assert_followed_url('foo ', - 'http://example.com/foo%20') + 'http://example.com/foo') @mark.xfail( - parse_version(w3lib_version) >= parse_version("2.1.1"), + parse_version(w3lib_version) < parse_version("2.1.1"), reason="https://github.com/scrapy/w3lib/pull/207", strict=True, ) def test_follow_whitespace_link(self): self._assert_followed_url(Link('http://example.com/foo '), - 'http://example.com/foo%20') + 'http://example.com/foo') def test_follow_flags(self): res = self.response_class('http://example.com/')