commit
a26ad068cd
37
1293.patch
37
1293.patch
@ -1,37 +0,0 @@
|
|||||||
From 989e13e0514a97cd01234233dd85ebbd2805a3bb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Williamson <awilliam@redhat.com>
|
|
||||||
Date: Wed, 9 May 2018 15:50:50 -0700
|
|
||||||
Subject: [PATCH] Skip tests that use 'xprocess' fixture when not installed
|
|
||||||
|
|
||||||
There's already a little trick to skip tests that use a fixture
|
|
||||||
called 'subprocess' when pytest-xprocess is not installed, but
|
|
||||||
many tests use the 'xprocess' fixture directly, and all of those
|
|
||||||
will still just fail. This just defines a dummy 'xprocess'
|
|
||||||
fixture as well as the dummy 'subprocess' fixture when xprocess
|
|
||||||
is not installed, so those tests as well will be skipped instead
|
|
||||||
of failing.
|
|
||||||
|
|
||||||
I noticed this when trying to run the test suite during build
|
|
||||||
of the Fedora package - xprocess isn't packaged for Fedora yet,
|
|
||||||
so there's no way to run the tests that use it unfortunately.
|
|
||||||
|
|
||||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
|
||||||
---
|
|
||||||
tests/conftest.py | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/tests/conftest.py b/tests/conftest.py
|
|
||||||
index ce885777a..f4611d9d0 100644
|
|
||||||
--- a/tests/conftest.py
|
|
||||||
+++ b/tests/conftest.py
|
|
||||||
@@ -29,6 +29,10 @@
|
|
||||||
@pytest.fixture(scope='session')
|
|
||||||
def subprocess():
|
|
||||||
pytest.skip('pytest-xprocess not installed.')
|
|
||||||
+
|
|
||||||
+ @pytest.fixture(scope='session')
|
|
||||||
+ def xprocess():
|
|
||||||
+ pytest.skip('pytest-xprocess not installed.')
|
|
||||||
else:
|
|
||||||
@pytest.fixture(scope='session')
|
|
||||||
def subprocess(xprocess):
|
|
||||||
133
Skip-tests-that-use-xprocess-fixture-when-not-installed.patch
Normal file
133
Skip-tests-that-use-xprocess-fixture-when-not-installed.patch
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
From 7a4e8b834ee81aeeaa5dd0458b3986d33bb69de8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adam Williamson <awilliam@redhat.com>
|
||||||
|
Date: Wed, 9 May 2018 15:50:50 -0700
|
||||||
|
Subject: [PATCH] Skip tests that use 'xprocess' fixture when not installed
|
||||||
|
|
||||||
|
There's a trick in conftest.py intended to allow tests to use
|
||||||
|
a fixture named 'subprocess', which will be the 'xprocess'
|
||||||
|
fixture if that's available, or will cause the test to be
|
||||||
|
skipped it it's not available. Some tests, however, just use
|
||||||
|
the 'xprocess' fixture directly, so all those tests fail if
|
||||||
|
it is not available.
|
||||||
|
|
||||||
|
We don't really need this 'subprocess' fixture at all, it
|
||||||
|
turns out - we can just do the same trick directly on the
|
||||||
|
'xprocess' fixture, so all tests can use that directly (and
|
||||||
|
also there's no confusion between this wrapper fixture and the
|
||||||
|
commonly-used Python module called...subprocess). This
|
||||||
|
simplifies things and makes the whole test suite run OK when
|
||||||
|
xprocess isn't available.
|
||||||
|
|
||||||
|
I noticed this when trying to run the test suite during build
|
||||||
|
of the Fedora package - xprocess isn't packaged for Fedora yet,
|
||||||
|
so there's no way to run the tests that use it unfortunately.
|
||||||
|
|
||||||
|
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||||
|
---
|
||||||
|
tests/conftest.py | 12 ++++--------
|
||||||
|
tests/contrib/cache/test_cache.py | 12 ++++++------
|
||||||
|
2 files changed, 10 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/conftest.py b/tests/conftest.py
|
||||||
|
index ce885777a..cd78d8ceb 100644
|
||||||
|
--- a/tests/conftest.py
|
||||||
|
+++ b/tests/conftest.py
|
||||||
|
@@ -27,12 +27,8 @@
|
||||||
|
__import__('pytest_xprocess')
|
||||||
|
except ImportError:
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
- def subprocess():
|
||||||
|
+ def xprocess():
|
||||||
|
pytest.skip('pytest-xprocess not installed.')
|
||||||
|
-else:
|
||||||
|
- @pytest.fixture(scope='session')
|
||||||
|
- def subprocess(xprocess):
|
||||||
|
- return xprocess
|
||||||
|
|
||||||
|
|
||||||
|
port_generator = count(13220)
|
||||||
|
@@ -117,7 +113,7 @@ def wait_for_reloader_loop(self):
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
-def dev_server(tmpdir, subprocess, request, monkeypatch):
|
||||||
|
+def dev_server(tmpdir, xprocess, request, monkeypatch):
|
||||||
|
'''Run werkzeug.serving.run_simple in its own process.
|
||||||
|
|
||||||
|
:param application: String for the module that will be created. The module
|
||||||
|
@@ -144,7 +140,7 @@ def run_dev_server(application):
|
||||||
|
url_base = 'http://localhost:{0}'.format(port)
|
||||||
|
|
||||||
|
info = _ServerInfo(
|
||||||
|
- subprocess,
|
||||||
|
+ xprocess,
|
||||||
|
'localhost:{0}'.format(port),
|
||||||
|
url_base,
|
||||||
|
port
|
||||||
|
@@ -154,7 +150,7 @@ def preparefunc(cwd):
|
||||||
|
args = [sys.executable, __file__, str(tmpdir)]
|
||||||
|
return lambda: 'pid=%s' % info.request_pid(), args
|
||||||
|
|
||||||
|
- subprocess.ensure('dev_server', preparefunc, restart=True)
|
||||||
|
+ xprocess.ensure('dev_server', preparefunc, restart=True)
|
||||||
|
|
||||||
|
def teardown():
|
||||||
|
# Killing the process group that runs the server, not just the
|
||||||
|
diff --git a/tests/contrib/cache/test_cache.py b/tests/contrib/cache/test_cache.py
|
||||||
|
index 3e6ee7f36..0a2dac14a 100644
|
||||||
|
--- a/tests/contrib/cache/test_cache.py
|
||||||
|
+++ b/tests/contrib/cache/test_cache.py
|
||||||
|
@@ -221,7 +221,7 @@ class TestRedisCache(GenericCacheTests):
|
||||||
|
_guaranteed_deletes = True
|
||||||
|
|
||||||
|
@pytest.fixture(scope='class', autouse=True)
|
||||||
|
- def requirements(self, subprocess):
|
||||||
|
+ def requirements(self, xprocess):
|
||||||
|
if redis is None:
|
||||||
|
pytest.skip('Python package "redis" is not installed.')
|
||||||
|
|
||||||
|
@@ -229,7 +229,7 @@ def prepare(cwd):
|
||||||
|
return '[Rr]eady to accept connections', ['redis-server']
|
||||||
|
|
||||||
|
try:
|
||||||
|
- subprocess.ensure('redis_server', prepare)
|
||||||
|
+ xprocess.ensure('redis_server', prepare)
|
||||||
|
except IOError as e:
|
||||||
|
# xprocess raises FileNotFoundError
|
||||||
|
if e.errno == errno.ENOENT:
|
||||||
|
@@ -238,7 +238,7 @@ def prepare(cwd):
|
||||||
|
raise
|
||||||
|
|
||||||
|
yield
|
||||||
|
- subprocess.getinfo('redis_server').terminate()
|
||||||
|
+ xprocess.getinfo('redis_server').terminate()
|
||||||
|
|
||||||
|
@pytest.fixture(params=(None, False, True))
|
||||||
|
def make_cache(self, request):
|
||||||
|
@@ -272,7 +272,7 @@ class TestMemcachedCache(GenericCacheTests):
|
||||||
|
_can_use_fast_sleep = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope='class', autouse=True)
|
||||||
|
- def requirements(self, subprocess):
|
||||||
|
+ def requirements(self, xprocess):
|
||||||
|
if memcache is None:
|
||||||
|
pytest.skip(
|
||||||
|
'Python package for memcache is not installed. Need one of '
|
||||||
|
@@ -283,7 +283,7 @@ def prepare(cwd):
|
||||||
|
return '', ['memcached']
|
||||||
|
|
||||||
|
try:
|
||||||
|
- subprocess.ensure('memcached', prepare)
|
||||||
|
+ xprocess.ensure('memcached', prepare)
|
||||||
|
except IOError as e:
|
||||||
|
# xprocess raises FileNotFoundError
|
||||||
|
if e.errno == errno.ENOENT:
|
||||||
|
@@ -292,7 +292,7 @@ def prepare(cwd):
|
||||||
|
raise
|
||||||
|
|
||||||
|
yield
|
||||||
|
- subprocess.getinfo('memcached').terminate()
|
||||||
|
+ xprocess.getinfo('memcached').terminate()
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def make_cache(self):
|
||||||
@ -4,7 +4,7 @@
|
|||||||
Name: python-werkzeug
|
Name: python-werkzeug
|
||||||
Summary: A comprehensive WSGI web application library
|
Summary: A comprehensive WSGI web application library
|
||||||
Version: 0.14.1
|
Version: 0.14.1
|
||||||
Release: 4
|
Release: 5
|
||||||
License: BSD
|
License: BSD
|
||||||
URL: http://werkzeug.pocoo.org/
|
URL: http://werkzeug.pocoo.org/
|
||||||
Source0: https://files.pythonhosted.org/packages/source/W/Werkzeug/%{srcname}-%{version}.tar.gz
|
Source0: https://files.pythonhosted.org/packages/source/W/Werkzeug/%{srcname}-%{version}.tar.gz
|
||||||
@ -15,7 +15,7 @@ Source1: werkzeug-sphinx-theme.tar.gz
|
|||||||
# https://github.com/pallets/werkzeug/pull/1293
|
# https://github.com/pallets/werkzeug/pull/1293
|
||||||
# skip tests that use a fixture called 'subprocess' when pytest-xprocess
|
# skip tests that use a fixture called 'subprocess' when pytest-xprocess
|
||||||
# is not installed
|
# is not installed
|
||||||
Patch0: 1293.patch
|
Patch0: Skip-tests-that-use-xprocess-fixture-when-not-installed.patch
|
||||||
|
|
||||||
%global _description\
|
%global _description\
|
||||||
Werkzeug is a comprehensive WSGI web application library. It began as a\
|
Werkzeug is a comprehensive WSGI web application library. It began as a\
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user