diff options
author | Michał Górny <mgorny@gentoo.org> | 2022-05-21 12:25:49 +0200 |
---|---|---|
committer | Stephen Finucane <stephenfinucane@hotmail.com> | 2022-05-22 10:09:12 +0100 |
commit | 2586621e3c200e11d29619ed814e704d9f464fea (patch) | |
tree | b235476f9e7777232e4d5869e594ec98b7c019b4 /fixtures/tests | |
parent | f50d2207b14c961c867a8c02225e724110f3be2b (diff) | |
download | fixtures-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.py | 14 |
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') |