From 1b1a2d9997497cad86fc2e67ac9e62474a2ba59b35b2296733581f710d58ad5d Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Sat, 12 Dec 2020 12:13:09 +0000 Subject: [PATCH 1/2] Accepting request 855340 from home:mcepl:branches:devel:tools:scm - Add remove_mock.patch to remove dependency on the external mock package (gh#man-group/pytest-plugins#168). Also add remove_virtualenv.patch to remove dependency on external virtualenv package. OBS-URL: https://build.opensuse.org/request/show/855340 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-virtualenv?expand=0&rev=7 --- python-pytest-virtualenv.changes | 8 ++++++++ python-pytest-virtualenv.spec | 14 +++++++++----- remove_mock.patch | 26 ++++++++++++++++++++++++++ remove_virtualenv.patch | 23 +++++++++++++++++++++++ 4 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 remove_mock.patch create mode 100644 remove_virtualenv.patch diff --git a/python-pytest-virtualenv.changes b/python-pytest-virtualenv.changes index be5a37f..864e64b 100644 --- a/python-pytest-virtualenv.changes +++ b/python-pytest-virtualenv.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Dec 11 22:44:02 UTC 2020 - Matej Cepl + +- Add remove_mock.patch to remove dependency on the external mock + package (gh#man-group/pytest-plugins#168). Also add + remove_virtualenv.patch to remove dependency on external + virtualenv package. + ------------------------------------------------------------------- Mon Jun 3 08:53:22 UTC 2019 - Tomáš Chvátal diff --git a/python-pytest-virtualenv.spec b/python-pytest-virtualenv.spec index 8226442..acfcdc3 100644 --- a/python-pytest-virtualenv.spec +++ b/python-pytest-virtualenv.spec @@ -1,7 +1,7 @@ # # spec file for package python-pytest-virtualenv # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,21 +25,25 @@ License: MIT Group: Development/Languages/Python URL: https://github.com/manahl/pytest-plugins Source: https://files.pythonhosted.org/packages/source/p/pytest-virtualenv/pytest-virtualenv-%{version}.tar.gz -BuildRequires: %{python_module mock} +# PATCH-FIX-UPSTREAM remove_mock.patch gh#man-group/pytest-plugins#168 mcepl@suse.com +# remove dependency on the external module mock +Patch0: remove_mock.patch +# PATCH-FIX-UPSTREAM remove_mock.patch gh#man-group/pytest-plugins#168 mcepl@suse.com +# and while at it, we can remove dependency on the external module +# virtualenv as well +Patch1: remove_virtualenv.patch BuildRequires: %{python_module path.py} BuildRequires: %{python_module pytest-fixture-config} BuildRequires: %{python_module pytest-shutil} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools-git} BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module virtualenv} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-path.py Requires: python-pytest-fixture-config Requires: python-pytest-shutil Requires: python-setuptools -Requires: python-virtualenv BuildArch: noarch %python_subpackages @@ -49,7 +53,7 @@ teardown. The fixture has utility methods to install packages and list what's installed. %prep -%setup -q -n pytest-virtualenv-%{version} +%autosetup -p1 -n pytest-virtualenv-%{version} %build %python_build diff --git a/remove_mock.patch b/remove_mock.patch new file mode 100644 index 0000000..95812c3 --- /dev/null +++ b/remove_mock.patch @@ -0,0 +1,26 @@ +--- a/tests/unit/test_venv.py ++++ b/tests/unit/test_venv.py +@@ -1,4 +1,4 @@ +-import mock ++from unittest.mock import patch + + import pytest_virtualenv as venv + from pytest_shutil import env +@@ -6,7 +6,7 @@ from pytest_shutil import env + + def test_PYTHONPATH_not_present_in_testing_env_if_set(): + with env.set_env('PYTHONPATH', 'fred'): +- with mock.patch.object(venv.Workspace, 'run') as run: ++ with patch.object(venv.Workspace, 'run') as run: + venv.VirtualEnv() + call = run.mock_calls[0] + assert 'PYTHONPATH' not in call[2]['env'] +@@ -18,7 +18,7 @@ def test_PYTHONPATH_not_present_in_testi + + def test_PYTHONPATH_not_present_in_testing_env_if_unset(): + with env.no_env('PYTHONPATH'): +- with mock.patch.object(venv.Workspace, 'run') as run: ++ with patch.object(venv.Workspace, 'run') as run: + venv.VirtualEnv() + call = run.mock_calls[0] + assert 'PYTHONPATH' not in call[2]['env'] diff --git a/remove_virtualenv.patch b/remove_virtualenv.patch new file mode 100644 index 0000000..36d163f --- /dev/null +++ b/remove_virtualenv.patch @@ -0,0 +1,23 @@ +--- + pytest_virtualenv.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/pytest_virtualenv.py ++++ b/pytest_virtualenv.py +@@ -21,7 +21,7 @@ class FixtureConfig(Config): + + # Default values for system resource locations - patch this to change defaults + # Can be a string or list of them +-DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = [sys.executable, '-m', 'virtualenv'] ++DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = [sys.executable, '-m', 'venv'] + + CONFIG = FixtureConfig( + virtualenv_executable=os.getenv('VIRTUALENV_FIXTURE_EXECUTABLE', DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE), +@@ -137,7 +137,6 @@ class VirtualEnv(Workspace): + cmd = [self.virtualenv_cmd] + else: + cmd = list(self.virtualenv_cmd) +- cmd.extend(['-p', python or cmdline.get_real_python_executable()]) + cmd.extend(self.args) + cmd.append(str(self.virtualenv)) + self.run(cmd) From 359af771ed37864c3f085e811d5680a43b51a18e9dcb520fc4fd9c5a95ac569a Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Mon, 14 Dec 2020 00:35:28 +0000 Subject: [PATCH 2/2] Accepting request 855629 from home:mcepl:branches:devel:tools:scm - We don't need to break Python 2.7 OBS-URL: https://build.opensuse.org/request/show/855629 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-virtualenv?expand=0&rev=8 --- python-pytest-virtualenv.changes | 5 ++++ python-pytest-virtualenv.spec | 7 ++++- remove_mock.patch | 11 +++++--- remove_virtualenv.patch | 48 ++++++++++++++++++++++++++++++-- 4 files changed, 63 insertions(+), 8 deletions(-) diff --git a/python-pytest-virtualenv.changes b/python-pytest-virtualenv.changes index 864e64b..3197abf 100644 --- a/python-pytest-virtualenv.changes +++ b/python-pytest-virtualenv.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Dec 13 21:55:46 UTC 2020 - Matej Cepl + +- We don't need to break Python 2.7 + ------------------------------------------------------------------- Fri Dec 11 22:44:02 UTC 2020 - Matej Cepl diff --git a/python-pytest-virtualenv.spec b/python-pytest-virtualenv.spec index acfcdc3..5c6922e 100644 --- a/python-pytest-virtualenv.spec +++ b/python-pytest-virtualenv.spec @@ -38,6 +38,10 @@ BuildRequires: %{python_module pytest-shutil} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools-git} BuildRequires: %{python_module setuptools} +%if 0%{?suse_version} <= 1500 +BuildRequires: %{python_module mock} +BuildRequires: %{python_module virtualenv} +%endif BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-path.py @@ -63,7 +67,8 @@ what's installed. %python_expand %fdupes %{buildroot}%{$python_sitelib} %check -%pytest +# Requires network access +%pytest -k 'not test_installed_packages' %files %{python_files} %doc CHANGES.md README.md diff --git a/remove_mock.patch b/remove_mock.patch index 95812c3..6ec01e9 100644 --- a/remove_mock.patch +++ b/remove_mock.patch @@ -1,12 +1,15 @@ --- a/tests/unit/test_venv.py +++ b/tests/unit/test_venv.py -@@ -1,4 +1,4 @@ +@@ -1,4 +1,7 @@ -import mock -+from unittest.mock import patch ++try: ++ from unittest.mock import patch ++except ImportError: ++ from mock import patch import pytest_virtualenv as venv from pytest_shutil import env -@@ -6,7 +6,7 @@ from pytest_shutil import env +@@ -6,7 +9,7 @@ from pytest_shutil import env def test_PYTHONPATH_not_present_in_testing_env_if_set(): with env.set_env('PYTHONPATH', 'fred'): @@ -15,7 +18,7 @@ venv.VirtualEnv() call = run.mock_calls[0] assert 'PYTHONPATH' not in call[2]['env'] -@@ -18,7 +18,7 @@ def test_PYTHONPATH_not_present_in_testi +@@ -18,7 +21,7 @@ def test_PYTHONPATH_not_present_in_testi def test_PYTHONPATH_not_present_in_testing_env_if_unset(): with env.no_env('PYTHONPATH'): diff --git a/remove_virtualenv.patch b/remove_virtualenv.patch index 36d163f..d4aaa59 100644 --- a/remove_virtualenv.patch +++ b/remove_virtualenv.patch @@ -4,20 +4,62 @@ --- a/pytest_virtualenv.py +++ b/pytest_virtualenv.py -@@ -21,7 +21,7 @@ class FixtureConfig(Config): +@@ -15,13 +15,19 @@ from pytest_shutil.workspace import Work + from pytest_shutil import run, cmdline + from pytest_fixture_config import Config, yield_requires_config ++PY2 = sys.version_info[0] == 2 ++ + + class FixtureConfig(Config): + __slots__ = ('virtualenv_executable') + ++ # Default values for system resource locations - patch this to change defaults # Can be a string or list of them -DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = [sys.executable, '-m', 'virtualenv'] -+DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = [sys.executable, '-m', 'venv'] ++if PY2: ++ DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = [sys.executable, '-m', 'virtualenv'] ++else: ++ DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = [sys.executable, '-m', 'venv'] CONFIG = FixtureConfig( virtualenv_executable=os.getenv('VIRTUALENV_FIXTURE_EXECUTABLE', DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE), -@@ -137,7 +137,6 @@ class VirtualEnv(Workspace): +@@ -78,7 +84,7 @@ class PackageEntry(object): + + def match(self, package_type): + if package_type is self.ANY: +- return True ++ return True + elif package_type is self.REL: + if self.isrel: + return True +@@ -137,7 +143,8 @@ class VirtualEnv(Workspace): cmd = [self.virtualenv_cmd] else: cmd = list(self.virtualenv_cmd) - cmd.extend(['-p', python or cmdline.get_real_python_executable()]) ++ if PY2: ++ cmd.extend(['-p', python or cmdline.get_real_python_executable()]) cmd.extend(self.args) cmd.append(str(self.virtualenv)) self.run(cmd) +--- a/tests/integration/test_tmpvirtualenv.py ++++ b/tests/integration/test_tmpvirtualenv.py +@@ -5,6 +5,8 @@ import textwrap + + import pytest_virtualenv as venv + ++PY2 = sys.version_info[0] == 2 ++ + + def check_member(name, ips): + return name in ips +@@ -15,4 +17,5 @@ def test_installed_packages(): + ips = v.installed_packages() + assert len(ips) > 0 + check_member('pip', ips) +- check_member('virtualenv', ips) +\ No newline at end of file ++ if PY2: ++ check_member('virtualenv', ips)