14
0
forked from pool/python-w3lib

Accepting request 880134 from devel:languages:python

- Add 166-add-xfail-test_add_or_replace_parameter_fail.patch,
  which makes tests working with CVE-2021-23336 (bsc#1181270).

OBS-URL: https://build.opensuse.org/request/show/880134
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-w3lib?expand=0&rev=7
This commit is contained in:
2021-03-20 20:25:56 +00:00
committed by Git OBS Bridge
3 changed files with 93 additions and 3 deletions

View File

@@ -0,0 +1,80 @@
From 34c62eb265cdb75b748d8aca43a2f8b9581dbd6a Mon Sep 17 00:00:00 2001
From: Eugenio Lacuesta <eugenio.lacuesta@gmail.com>
Date: Wed, 10 Mar 2021 12:20:24 -0300
Subject: [PATCH 1/8] [CI] Run tests on GitHub actions
---
tests/test_url.py | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
delete mode 100644 .github/workflows/build.yml
create mode 100644 .github/workflows/tests.yml
--- a/tests/test_url.py
+++ b/tests/test_url.py
@@ -2,11 +2,14 @@
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):
@@ -76,17 +79,16 @@ class UrlTests(unittest.TestCase):
def test_safe_url_string_unsafe_chars(self):
safeurl = safe_url_string(r"http://localhost:8001/unwise{,},|,\,^,[,],`?|=[]&[]=|")
self.assertEqual(safeurl, r"http://localhost:8001/unwise%7B,%7D,|,%5C,%5E,[,],%60?|=[]&[]=|")
-
+
def test_safe_url_string_quote_path(self):
safeurl = safe_url_string(u'http://google.com/"hello"', quote_path=True)
self.assertEqual(safeurl, u'http://google.com/%22hello%22')
-
+
safeurl = safe_url_string(u'http://google.com/"hello"', quote_path=False)
self.assertEqual(safeurl, u'http://google.com/"hello"')
-
+
safeurl = safe_url_string(u'http://google.com/"hello"')
self.assertEqual(safeurl, u'http://google.com/%22hello%22')
-
def test_safe_url_string_with_query(self):
safeurl = safe_url_string(u"http://www.example.com/£?unit=µ")
@@ -299,10 +301,6 @@ class UrlTests(unittest.TestCase):
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'
@@ -327,6 +325,13 @@ class UrlTests(unittest.TestCase):
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'}),
@@ -741,4 +746,3 @@ class DataURITests(unittest.TestCase):
if __name__ == "__main__":
unittest.main()
-

View File

@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Mar 19 14:28:28 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Add 166-add-xfail-test_add_or_replace_parameter_fail.patch,
which makes tests working with CVE-2021-23336 (bsc#1181270).
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Jul 22 11:05:23 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com> Wed Jul 22 11:05:23 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>

View File

@@ -1,7 +1,7 @@
# #
# spec file for package python-w3lib # spec file for package python-w3lib
# #
# Copyright (c) 2020 SUSE LLC # Copyright (c) 2021 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -25,6 +25,10 @@ License: BSD-3-Clause
Group: Development/Languages/Python Group: Development/Languages/Python
URL: https://github.com/scrapy/w3lib URL: https://github.com/scrapy/w3lib
Source: https://files.pythonhosted.org/packages/source/w/w3lib/w3lib-%{version}.tar.gz Source: https://files.pythonhosted.org/packages/source/w/w3lib/w3lib-%{version}.tar.gz
# PATCH-FIX-UPSTREAM 166-add-xfail-test_add_or_replace_parameter_fail.patch mcepl@suse.com
# Allow working with Python fixed CVE-2021-23336
Patch0: 166-add-xfail-test_add_or_replace_parameter_fail.patch
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools} BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module six >= 1.4.1} BuildRequires: %{python_module six >= 1.4.1}
BuildRequires: fdupes BuildRequires: fdupes
@@ -56,7 +60,7 @@ This is a Python library of web-related functions, such as:
* extract arguments from urls * extract arguments from urls
%prep %prep
%setup -q -n w3lib-%{version} %autosetup -p1 -n w3lib-%{version}
%build %build
%python_build %python_build
@@ -66,7 +70,7 @@ This is a Python library of web-related functions, such as:
%python_expand %fdupes %{buildroot}%{$python_sitelib} %python_expand %fdupes %{buildroot}%{$python_sitelib}
%check %check
%python_exec setup.py test %pytest
%files %{python_files} %files %{python_files}
%doc README.rst %doc README.rst