summaryrefslogtreecommitdiff
path: root/fixtures/tests
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2022-05-21 12:25:49 +0200
committerStephen Finucane <stephenfinucane@hotmail.com>2022-05-22 10:09:12 +0100
commit2586621e3c200e11d29619ed814e704d9f464fea (patch)
treeb235476f9e7777232e4d5869e594ec98b7c019b4 /fixtures/tests
parentf50d2207b14c961c867a8c02225e724110f3be2b (diff)
downloadfixtures-git-2586621e3c200e11d29619ed814e704d9f464fea.tar.gz
Support Popen's process_group argument from Python 3.11
Diffstat (limited to 'fixtures/tests')
-rw-r--r--fixtures/tests/_fixtures/test_popen.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/fixtures/tests/_fixtures/test_popen.py b/fixtures/tests/_fixtures/test_popen.py
index c7bf1bd..e9ab074 100644
--- a/fixtures/tests/_fixtures/test_popen.py
+++ b/fixtures/tests/_fixtures/test_popen.py
@@ -74,6 +74,8 @@ class TestFakePopen(testtools.TestCase, TestWithFixtures):
all_args["umask"] = "umask"
if sys.version_info >= (3, 10):
all_args["pipesize"] = "pipesize"
+ if sys.version_info >= (3, 11):
+ all_args["process_group"] = "process_group"
def get_info(proc_args):
self.assertEqual(all_args, proc_args)
@@ -110,6 +112,15 @@ class TestFakePopen(testtools.TestCase, TestWithFixtures):
r".* got an unexpected keyword argument 'pipesize'"):
fixture(args="args", pipesize=1024)
+ @testtools.skipUnless(
+ sys.version_info < (3, 11), "only relevant on Python <3.11")
+ def test_rejects_3_11_args_on_older_versions(self):
+ fixture = self.useFixture(FakePopen(lambda proc_args: {}))
+ with testtools.ExpectedException(
+ TypeError,
+ r".* got an unexpected keyword argument 'process_group'"):
+ fixture(args="args", process_group=42)
+
def test_function_signature(self):
fake_signature = inspect.getfullargspec(FakePopen.__call__)
real_signature = inspect.getfullargspec(subprocess.Popen)
@@ -130,6 +141,9 @@ class TestFakePopen(testtools.TestCase, TestWithFixtures):
fake_kwargs = set(fake_signature.kwonlyargs)
real_kwargs = set(real_signature.kwonlyargs)
+ if sys.version_info < (3, 11):
+ fake_kwargs.remove('process_group')
+
if sys.version_info < (3, 10):
fake_kwargs.remove('pipesize')