diff --git a/python-sqlparse.changes b/python-sqlparse.changes index b96400f..6948036 100644 --- a/python-sqlparse.changes +++ b/python-sqlparse.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Mar 24 02:45:39 UTC 2020 - Steve Kowalik + +- Add stdout-encoding-set.patch to use sys.stdout.reconfigure() if + the stream is an instance of TextIOWrapper to support a pytest change. + ------------------------------------------------------------------- Mon Mar 9 16:22:39 UTC 2020 - Dirk Mueller diff --git a/python-sqlparse.spec b/python-sqlparse.spec index e8cd491..97feae3 100644 --- a/python-sqlparse.spec +++ b/python-sqlparse.spec @@ -25,6 +25,7 @@ License: BSD-3-Clause Group: Development/Languages/Python URL: https://github.com/andialbrecht/sqlparse Source: https://files.pythonhosted.org/packages/source/s/sqlparse/sqlparse-%{version}.tar.gz +Patch0: stdout-encoding-set.patch BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: fdupes @@ -42,6 +43,7 @@ parsing, splitting and formatting SQL statements. %prep %setup -q -n sqlparse-%{version} sed -i -e '1{\,^#!%{_bindir}/env python,d}' sqlparse/__main__.py sqlparse/cli.py +%autopatch -p1 %build %python_build diff --git a/stdout-encoding-set.patch b/stdout-encoding-set.patch new file mode 100644 index 0000000..010dc66 --- /dev/null +++ b/stdout-encoding-set.patch @@ -0,0 +1,59 @@ +Index: sqlparse-0.3.1/tests/test_cli.py +=================================================================== +--- sqlparse-0.3.1.orig/tests/test_cli.py ++++ sqlparse-0.3.1/tests/test_cli.py +@@ -1,5 +1,6 @@ + # -*- coding: utf-8 -*- + ++import io + import subprocess + import sys + +@@ -78,7 +79,10 @@ def test_script(): + def test_encoding_utf8_stdout(filepath, load_file, capfd): + path = filepath('encoding_utf8.sql') + expected = load_file('encoding_utf8.sql', 'utf-8') +- sys.stdout.encoding = 'utf-8' ++ if isinstance(sys.stdout, io.TextIOWrapper): ++ sys.stdout.reconfigure(encoding='utf-8') ++ else: ++ sys.stdout.encoding = 'utf-8' + sqlparse.cli.main([path]) + out, _ = capfd.readouterr() + assert out == expected +@@ -96,7 +100,10 @@ def test_encoding_utf8_output_file(filep + def test_encoding_gbk_stdout(filepath, load_file, capfd): + path = filepath('encoding_gbk.sql') + expected = load_file('encoding_gbk.sql', 'gbk') +- sys.stdout.encoding = 'gbk' ++ if isinstance(sys.stdout, io.TextIOWrapper): ++ sys.stdout.reconfigure(encoding='gbk') ++ else: ++ sys.stdout.encoding = 'gbk' + sqlparse.cli.main([path, '--encoding', 'gbk']) + out, _ = capfd.readouterr() + assert out == expected +@@ -117,7 +124,10 @@ def test_encoding_stdin_utf8(filepath, l + old_stdin = sys.stdin + with open(path, 'r') as f: + sys.stdin = f +- sys.stdout.encoding = 'utf-8' ++ if isinstance(sys.stdout, io.TextIOWrapper): ++ sys.stdout.reconfigure(encoding='utf-8') ++ else: ++ sys.stdout.encoding = 'utf-8' + sqlparse.cli.main(['-']) + sys.stdin = old_stdin + out, _ = capfd.readouterr() +@@ -130,7 +140,10 @@ def test_encoding_stdin_gbk(filepath, lo + old_stdin = sys.stdin + with open(path, 'r') as stream: + sys.stdin = stream +- sys.stdout.encoding = 'gbk' ++ if isinstance(sys.stdout, io.TextIOWrapper): ++ sys.stdout.reconfigure(encoding='gbk') ++ else: ++ sys.stdout.encoding = 'gbk' + sqlparse.cli.main(['-', '--encoding', 'gbk']) + sys.stdin = old_stdin + out, _ = capfd.readouterr()