From c1c9fc7de6a7e883d627ae46840beaf8f3ecb20ae7a3d99cde66753bb0dcb06d Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Tue, 19 Oct 2021 17:15:13 +0000 Subject: [PATCH] Accepting request 925874 from home:bnavigator:branches:devel:languages:python:pytest - Fix compatibikity with with Psycopg 2.9 * pytest-plugins-pr186-fix-psycopg29.patch * gh#man-group/pytest-plugins#186 OBS-URL: https://build.opensuse.org/request/show/925874 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-server-fixtures?expand=0&rev=9 --- pytest-plugins-pr186-fix-psycopg29.patch | 43 ++++++++++++++++++++++++ python-pytest-server-fixtures.changes | 7 ++++ python-pytest-server-fixtures.spec | 6 ++-- 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 pytest-plugins-pr186-fix-psycopg29.patch diff --git a/pytest-plugins-pr186-fix-psycopg29.patch b/pytest-plugins-pr186-fix-psycopg29.patch new file mode 100644 index 0000000..1431627 --- /dev/null +++ b/pytest-plugins-pr186-fix-psycopg29.patch @@ -0,0 +1,43 @@ +From 291995b3cfe60a5b30d5c6e1f3279ea40d35c7bb Mon Sep 17 00:00:00 2001 +From: Ben Greiner +Date: Sun, 17 Oct 2021 18:57:06 +0200 +Subject: [PATCH] Don't use context manager for CREATE DATABASE + +Psycopg 2.9 uses transaction blocks withing context managers, +which is not allowed for CREATE DATABASE +https://github.com/psycopg/psycopg2/issues/941 +--- + .../pytest_server_fixtures/postgres.py | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/pytest-server-fixtures/pytest_server_fixtures/postgres.py b/pytest-server-fixtures/pytest_server_fixtures/postgres.py +index 7c6ea33..aeab36a 100644 +--- a/pytest-server-fixtures/pytest_server_fixtures/postgres.py ++++ b/pytest-server-fixtures/pytest_server_fixtures/postgres.py +@@ -103,18 +103,22 @@ def run_cmd(self): + + def check_server_up(self): + from psycopg2 import OperationalError ++ conn = None + try: + print("Connecting to Postgres at localhost:{}".format(self.port)) +- with self.connect('postgres') as conn: +- conn.set_session(autocommit=True) +- with conn.cursor() as cursor: +- cursor.execute("CREATE DATABASE " + self.database_name) ++ conn = self.connect('postgres') ++ conn.set_session(autocommit=True) ++ with conn.cursor() as cursor: ++ cursor.execute("CREATE DATABASE " + self.database_name) + self.connection = self.connect(self.database_name) + with open(self.workspace / 'db' / 'postmaster.pid', 'r') as f: + self.pid = int(f.readline().rstrip()) + return True + except OperationalError as e: + print("Could not connect to test postgres: {}".format(e)) ++ finally: ++ if conn: ++ conn.close() + return False + + def connect(self, database=None): diff --git a/python-pytest-server-fixtures.changes b/python-pytest-server-fixtures.changes index 08259bb..356e22a 100644 --- a/python-pytest-server-fixtures.changes +++ b/python-pytest-server-fixtures.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Oct 17 17:03:09 UTC 2021 - Ben Greiner + +- Fix compatibikity with with Psycopg 2.9 + * pytest-plugins-pr186-fix-psycopg29.patch + * gh#man-group/pytest-plugins#186 + ------------------------------------------------------------------- Sat May 1 10:31:41 UTC 2021 - Matej Cepl diff --git a/python-pytest-server-fixtures.spec b/python-pytest-server-fixtures.spec index ece1502..283db96 100644 --- a/python-pytest-server-fixtures.spec +++ b/python-pytest-server-fixtures.spec @@ -23,8 +23,10 @@ Release: 0 Summary: Extensible server fixures for py.test License: MIT Group: Development/Languages/Python -URL: https://github.com/manahl/pytest-plugins +URL: https://github.com/man-group/pytest-plugins Source: https://files.pythonhosted.org/packages/source/p/pytest-server-fixtures/pytest-server-fixtures-%{version}.tar.gz +# PATCH-FIX-UPSTREAM pytest-plugins-pr186-fix-psycopg29.patch -- gh#man-group/pytest-plugins#186 +Patch0: https://github.com/man-group/pytest-plugins/pull/186.patch#/pytest-plugins-pr186-fix-psycopg29.patch BuildRequires: %{python_module setuptools-git} BuildRequires: %{python_module setuptools} BuildRequires: fdupes @@ -89,7 +91,7 @@ BuildRequires: xorg-x11-server Extensible server fixures for py.test. %prep -%setup -q -n pytest-server-fixtures-%{version} +%autosetup -p2 -n pytest-server-fixtures-%{version} # Tests requiring a server rm tests/integration/test_mongo_server.py