Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-SQLAlchemy for 
openSUSE:Factory checked in at 2021-03-02 14:43:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-SQLAlchemy (Old)
 and      /work/SRC/openSUSE:Factory/.python-SQLAlchemy.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-SQLAlchemy"

Tue Mar  2 14:43:04 2021 rev:83 rq:874679 version:1.3.23

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-SQLAlchemy/python-SQLAlchemy.changes      
2021-01-29 14:55:39.853382903 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-SQLAlchemy.new.2378/python-SQLAlchemy.changes
    2021-03-02 15:26:08.025801928 +0100
@@ -1,0 +2,14 @@
+Tue Feb 23 17:27:18 UTC 2021 - Matej Cepl <mc...@suse.com>
+
+- Add tests_overcome_bpo42967.patch to over effects of bpo#42967,
+  which forbade mixing amps and semicolons in query strings as
+  separators (gh#sqlalchemy/sqlalchemy#5969).
+
+-------------------------------------------------------------------
+Tue Feb 23 17:07:02 UTC 2021 - Dirk M??ller <dmuel...@suse.com>
+
+- update to 1.3.23:
+  * Release 1.3.23 contains an array of bugfixes specific to dialects such as
+    Oracle, PostgreSQL, and MySQL. 
+
+-------------------------------------------------------------------

Old:
----
  SQLAlchemy-1.3.22.tar.gz

New:
----
  SQLAlchemy-1.3.23.tar.gz
  tests_overcome_bpo42967.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-SQLAlchemy.spec ++++++
--- /var/tmp/diff_new_pack.6240Oe/_old  2021-03-02 15:26:08.541802291 +0100
+++ /var/tmp/diff_new_pack.6240Oe/_new  2021-03-02 15:26:08.545802294 +0100
@@ -19,13 +19,17 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define oldpython python
 Name:           python-SQLAlchemy
-Version:        1.3.22
+Version:        1.3.23
 Release:        0
 Summary:        Database Abstraction Library
 License:        MIT
 URL:            https://www.sqlalchemy.org
 Source:         
https://files.pythonhosted.org/packages/source/S/SQLAlchemy/SQLAlchemy-%{version}.tar.gz
 Source1:        SQLAlchemy.keyring
+# PATCH-FIX-UPSTREAM tests_overcome_bpo42967.patch 
gh#sqlalchemy/sqlalchemy#5969 mc...@suse.com
+# over effects of bpo#42967, which forbade mixing amps and
+# semicolons in query strings as separators.
+Patch0:         tests_overcome_bpo42967.patch
 # devel is needed for optional C extensions cprocessors.so, cresultproxy.so 
and cutils.so
 BuildRequires:  %{python_module devel}
 BuildRequires:  %{python_module setuptools}
@@ -65,7 +69,7 @@
 reference for python-SQLAlchemy.
 
 %prep
-%setup -q -n SQLAlchemy-%{version}
+%autosetup -p1 -n SQLAlchemy-%{version}
 
 rm -rf doc/build # Remove unnecessary scripts for building documentation
 sed -i 's/\r$//' examples/dynamic_dict/dynamic_dict.py

++++++ SQLAlchemy-1.3.22.tar.gz -> SQLAlchemy-1.3.23.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-SQLAlchemy/SQLAlchemy-1.3.22.tar.gz 
/work/SRC/openSUSE:Factory/.python-SQLAlchemy.new.2378/SQLAlchemy-1.3.23.tar.gz 
differ: char 5, line 1


++++++ tests_overcome_bpo42967.patch ++++++
---
 lib/sqlalchemy/engine/url.py      |   14 ++++++++++----
 test/dialect/mssql/test_engine.py |    3 ++-
 2 files changed, 12 insertions(+), 5 deletions(-)

--- a/lib/sqlalchemy/engine/url.py
+++ b/lib/sqlalchemy/engine/url.py
@@ -14,6 +14,7 @@ argument; alternatively, the URL is a pu
 be used directly and is also accepted directly by ``create_engine()``.
 """
 
+import inspect
 import re
 
 from .interfaces import Dialect
@@ -218,7 +219,7 @@ class URL(object):
         return translated
 
 
-def make_url(name_or_url):
+def make_url(name_or_url, separator='&'):
     """Given a string or unicode instance, produce a new URL instance.
 
     The given string is parsed according to the RFC 1738 spec.  If an
@@ -226,12 +227,12 @@ def make_url(name_or_url):
     """
 
     if isinstance(name_or_url, util.string_types):
-        return _parse_rfc1738_args(name_or_url)
+        return _parse_rfc1738_args(name_or_url, separator)
     else:
         return name_or_url
 
 
-def _parse_rfc1738_args(name):
+def _parse_rfc1738_args(name, qs_sep):
     pattern = re.compile(
         r"""
             (?P<name>[\w\+]+)://
@@ -261,7 +262,12 @@ def _parse_rfc1738_args(name):
             if len(tokens) > 1:
                 query = {}
 
-                for key, value in util.parse_qsl(tokens[1]):
+                if 'separator' in inspect.signature(util.parse_qsl).parameters:
+                    qs_dict = util.parse_qsl(tokens[1], separator=qs_sep)
+                else:
+                    qs_dict = util.parse_qsl(tokens[1])
+
+                for key, value in qs_dict:
                     if util.py2k:
                         key = key.encode("ascii")
                     if key in query:
--- a/test/dialect/mssql/test_engine.py
+++ b/test/dialect/mssql/test_engine.py
@@ -164,7 +164,8 @@ class ParseConnectTest(fixtures.TestBase
         u = url.make_url(
             "mssql+pyodbc://@server_name/db_name?"
             "driver=ODBC+Driver+17+for+SQL+Server;"
-            "authentication=ActiveDirectoryIntegrated"
+            "authentication=ActiveDirectoryIntegrated",
+            separator=';'
         )
         connection = dialect.create_connect_args(u)
         eq_(connection[1], {})

Reply via email to