From a86a274b7224a5069f82c2d2cdd1f499d9c8dc22 Mon Sep 17 00:00:00 2001 From: pxinwr Date: Sun, 29 Nov 2020 06:04:50 +0800 Subject: bpo-31904: add shell requirement for test_pipes (GH-23489) VxWorks has no user space shell provided so it can't support pipes module. Also add shell requirement for running test_pipes. --- Doc/library/pipes.rst | 2 ++ Lib/test/support/__init__.py | 2 +- Lib/test/test_pipes.py | 5 ++++- Misc/NEWS.d/next/Tests/2020-11-24-17-26-41.bpo-31904.eug834.rst | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Tests/2020-11-24-17-26-41.bpo-31904.eug834.rst diff --git a/Doc/library/pipes.rst b/Doc/library/pipes.rst index 0a22da1..57e27a6 100644 --- a/Doc/library/pipes.rst +++ b/Doc/library/pipes.rst @@ -17,6 +17,8 @@ The :mod:`pipes` module defines a class to abstract the concept of a *pipeline* Because the module uses :program:`/bin/sh` command lines, a POSIX or compatible shell for :func:`os.system` and :func:`os.popen` is required. +.. availability:: Unix. Not available on VxWorks. + The :mod:`pipes` module defines the following class: diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 4ba7494..5a45d78 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -421,7 +421,7 @@ is_jython = sys.platform.startswith('java') is_android = hasattr(sys, 'getandroidapilevel') -if sys.platform != 'win32': +if sys.platform not in ('win32', 'vxworks'): unix_shell = '/system/bin/sh' if is_android else '/bin/sh' else: unix_shell = None diff --git a/Lib/test/test_pipes.py b/Lib/test/test_pipes.py index 7d8cd54..6a13b36 100644 --- a/Lib/test/test_pipes.py +++ b/Lib/test/test_pipes.py @@ -3,13 +3,16 @@ import os import string import unittest import shutil -from test.support import run_unittest, reap_children +from test.support import run_unittest, reap_children, unix_shell from test.support.os_helper import TESTFN, unlink if os.name != 'posix': raise unittest.SkipTest('pipes module only works on posix') +if not (unix_shell and os.path.exists(unix_shell)): + raise unittest.SkipTest('pipes module requires a shell') + TESTFN2 = TESTFN + "2" # tr a-z A-Z is not portable, so make the ranges explicit diff --git a/Misc/NEWS.d/next/Tests/2020-11-24-17-26-41.bpo-31904.eug834.rst b/Misc/NEWS.d/next/Tests/2020-11-24-17-26-41.bpo-31904.eug834.rst new file mode 100644 index 0000000..3e39428 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-11-24-17-26-41.bpo-31904.eug834.rst @@ -0,0 +1 @@ +add shell requirement for test_pipes -- cgit v0.12