Skip to content
Permalink
Browse files

bpo-26128: Added __init__to STARTUPINFO

- Added tests for the code
- Added docs
  • Loading branch information...
codenamesubho committed Feb 19, 2017
1 parent 21024f0 commit 03d755f3ccd15c98ffe456e5cb01895eb661c035
Showing with 32 additions and 7 deletions.
  1. +4 −1 Doc/library/subprocess.rst
  2. +7 −5 Lib/subprocess.py
  3. +16 −0 Lib/test/test_subprocess.py
  4. +1 −0 Misc/ACKS
  5. +4 −1 Misc/NEWS
@@ -746,7 +746,8 @@ on Windows.

Partial support of the Windows
`STARTUPINFO <https://msdn.microsoft.com/en-us/library/ms686331(v=vs.85).aspx>`__
structure is used for :class:`Popen` creation.
structure is used for :class:`Popen` creation. The following attributes can be set
by passing them as keyword-only arguments.

.. attribute:: dwFlags

@@ -788,6 +789,8 @@ on Windows.
:data:`SW_HIDE` is provided for this attribute. It is used when
:class:`Popen` is called with ``shell=True``.

.. versionchanged:: 3.7
*Keyword-only argument* support was added.

Constants
^^^^^^^^^
@@ -127,11 +127,13 @@ def stdout(self, value):
import msvcrt
import _winapi
class STARTUPINFO:
dwFlags = 0
hStdInput = None
hStdOutput = None
hStdError = None
wShowWindow = 0
def __init__(self, *, dwFlags=0, hStdInput=None, hStdOutput=None,
hStdError=None, wShowWindow=0):
self.dwFlags = dwFlags
self.hStdInput = hStdInput
self.hStdOutput = hStdOutput
self.hStdError = hStdError
self.wShowWindow = wShowWindow
else:
import _posixsubprocess
import select
@@ -2550,6 +2550,22 @@ def test_startupinfo(self):
subprocess.call([sys.executable, "-c", "import sys; sys.exit(0)"],
startupinfo=startupinfo)

def test_startupinfo_keywords(self):
# startupinfo argument
# We use hardcoded constants, because we do not want to
# depend on win32all.
STARTF_USERSHOWWINDOW = 1
SW_MAXIMIZE = 3
startupinfo = subprocess.STARTUPINFO(
dwFlags=STARTF_USERSHOWWINDOW,
wShowWindow=SW_MAXIMIZE
)
# Since Python is a console process, it won't be affected
# by wShowWindow, but the argument should be silently
# ignored
subprocess.call([sys.executable, "-c", "import sys; sys.exit(0)"],
startupinfo=startupinfo)

def test_creationflags(self):
# creationflags argument
CREATE_NEW_CONSOLE = 16
@@ -1726,3 +1726,4 @@ Doug Zongker
Peter Åstrand
evilzero
Dhushyanth Ramasamy
Subhendu Ghosh
@@ -13,7 +13,7 @@ Core and Builtins
- bpo-28598: Support __rmod__ for subclasses of str being called before
str.__mod__. Patch by Martijn Pieters.

- bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX.
- bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX.
Patch by Matthieu Dartiailh.

- bpo-29602: Fix incorrect handling of signed zeros in complex constructor for
@@ -1243,6 +1243,9 @@ Core and Builtins
Library
-------

- Issue #26128: Added keyword-only arguments support for
subprocess.STARTUPINFO

- Issue #27517: LZMA compressor and decompressor no longer raise exceptions if
given empty data twice. Patch by Benjamin Fogle.

0 comments on commit 03d755f

Please sign in to comment.
You can’t perform that action at this time.