Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doc/reference/expressions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2048,7 +2048,7 @@ Boolean operations

In the context of Boolean operations, and also when expressions are used by
control flow statements, the following values are interpreted as false:
``False``, ``None``, numeric zero of all types, and empty strings and containers
``False``, ``None``, zero of any numeric type, and empty strings and containers
(including strings, tuples, lists, dictionaries, sets and frozensets). All
other values are interpreted as true. User-defined objects can customize their
truth value by providing a :meth:`~object.__bool__` method.
Expand Down
5 changes: 2 additions & 3 deletions Lib/test/test_asyncio/test_subprocess.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import shlex
import signal
import sys
import textwrap
Expand Down Expand Up @@ -770,9 +771,7 @@ async def check_stdout_output(self, coro, output):

def test_create_subprocess_env_shell(self) -> None:
async def main() -> None:
executable = sys.executable
if sys.platform == "win32":
executable = f'"{executable}"'
executable = f'"{sys.executable}"' if sys.platform == "win32" else shlex.quote(sys.executable)
cmd = f'''{executable} -c "import os, sys; sys.stdout.write(os.getenv('FOO'))"'''
env = os.environ.copy()
env["FOO"] = "bar"
Expand Down
38 changes: 14 additions & 24 deletions Lib/test/test_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,33 +68,20 @@ def testcommon(formatstr, args, output=None, limit=None, overflowok=False):
testformat(b_format, args, b_output, limit, overflowok)
testformat(ba_format, args, ba_output, limit, overflowok)

def test_exc(formatstr, args, exception, excmsg):
try:
testformat(formatstr, args)
except exception as exc:
if str(exc) == excmsg:
if verbose:
print("yes")
else:
if verbose: print('no')
print('Unexpected ', exception, ':', repr(str(exc)))
raise
except:
if verbose: print('no')
print('Unexpected exception')
raise
else:
raise TestFailed('did not get expected exception: %s' % excmsg)

def test_exc_common(formatstr, args, exception, excmsg):
# test str and bytes
test_exc(formatstr, args, exception, excmsg)
if isinstance(args, dict):
args = {k.encode('ascii'): v for k, v in args.items()}
test_exc(formatstr.encode('ascii'), args, exception, excmsg)

class FormatTest(unittest.TestCase):

def check_exc(self, formatstr, args, exception, excmsg):
with self.assertRaisesRegex(exception, re.escape(excmsg)):
testformat(formatstr, args)

def check_exc_common(self, formatstr, args, exception, excmsg):
# test str and bytes
self.check_exc(formatstr, args, exception, excmsg)
if isinstance(args, dict):
args = {k.encode('ascii'): v for k, v in args.items()}
self.check_exc(formatstr.encode('ascii'), args, exception, excmsg)

def test_common_format(self):
# test the format identifiers that work the same across
# str, bytes, and bytearrays (integer, float, oct, hex)
Expand Down Expand Up @@ -271,6 +258,7 @@ def test_common_format(self):

if verbose:
print('Testing exceptions')
test_exc_common = self.check_exc_common
test_exc_common('abc %', (), ValueError, "stray % at position 4")
test_exc_common('abc % %s', 1, ValueError,
"stray % at position 4 or unexpected format character '%' at position 6")
Expand Down Expand Up @@ -365,6 +353,7 @@ def test_str_format(self):
# Test exception for unknown format characters, etc.
if verbose:
print('Testing exceptions')
test_exc = self.check_exc
test_exc('abc %b', 1, ValueError,
"unsupported format %b at position 4")
test_exc("abc %\nd", 1, ValueError,
Expand Down Expand Up @@ -468,6 +457,7 @@ def __bytes__(self):
# Test exception for unknown format characters, etc.
if verbose:
print('Testing exceptions')
test_exc = self.check_exc
test_exc(b"abc %\nd", 1, ValueError,
"stray % at position 4 or unexpected format character with code 0x0a at position 5")
test_exc(b"abc %'d", 1, ValueError,
Expand Down
Loading