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], {})