File tests_overcome_bpo42967.patch of Package python-yarl

Index: yarl-1.7.2/yarl/_url.py
===================================================================
--- yarl-1.7.2.orig/yarl/_url.py	2021-11-01 18:54:02.000000000 +0100
+++ yarl-1.7.2/yarl/_url.py	2021-12-07 17:00:29.099007846 +0100
@@ -1,4 +1,5 @@
 import functools
+import inspect
 import sys
 import warnings
 from collections.abc import Mapping, Sequence
@@ -142,7 +143,7 @@ class URL:
     _PATH_UNQUOTER = _Unquoter(unsafe="+")
     _QS_UNQUOTER = _Unquoter(qs=True)
 
-    def __new__(cls, val="", *, encoded=False, strict=None):
+    def __new__(cls, val="", *, encoded=False, strict=None, separator='&'):
         if strict is not None:  # pragma: no cover
             warnings.warn("strict parameter is ignored")
         if type(val) is cls:
@@ -157,6 +158,8 @@ class URL:
         else:
             raise TypeError("Constructor parameter should be str")
 
+        cls.qs_sep = separator
+
         if not encoded:
             if not val[1]:  # netloc
                 netloc = ""
@@ -554,7 +557,12 @@ class URL:
         Empty value if URL has no query part.
 
         """
-        ret = MultiDict(parse_qsl(self.raw_query_string, keep_blank_values=True))
+        if 'separator' in inspect.signature(parse_qsl).parameters:
+            qs_dict = parse_qsl(self.raw_query_string,
+                                keep_blank_values=True, separator=self.qs_sep)
+        else:
+            qs_dict = parse_qsl(self.raw_query_string, keep_blank_values=True)
+        ret = MultiDict(qs_dict)
         return MultiDictProxy(ret)
 
     @property
@@ -989,7 +997,12 @@ class URL:
     def update_query(self, *args, **kwargs):
         """Return a new URL with query part updated."""
         s = self._get_str_query(*args, **kwargs)
-        new_query = MultiDict(parse_qsl(s, keep_blank_values=True))
+        if 'separator' in inspect.signature(parse_qsl).parameters:
+            qs_dict = parse_qsl(s, keep_blank_values=True,
+                                separator=self.qs_sep)
+        else:
+            qs_dict = parse_qsl(s, keep_blank_values=True)
+        new_query = MultiDict(qs_dict)
         query = MultiDict(self.query)
         query.update(new_query)
 

openSUSE Build Service is sponsored by