summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMartin Panter <vadmium>2015-09-09 01:01:13 (GMT)
committerMartin Panter <vadmium>2015-09-09 01:01:13 (GMT)
commitbf19d169504823c258a9aae4bf61c8df9ff5987f (patch)
treee7c2737588806aeb3e4b46a0ca1beba7d8c31065 /Lib
parent5558d4f2f89b86bb0aab35fff01c2b51f1013f33 (diff)
downloadcpython-bf19d169504823c258a9aae4bf61c8df9ff5987f.zip
cpython-bf19d169504823c258a9aae4bf61c8df9ff5987f.tar.gz
cpython-bf19d169504823c258a9aae4bf61c8df9ff5987f.tar.bz2
Issue #23738: Document and test actual keyword parameter names
Also fix signature because os.utime(..., ns=None) is not allowed.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_binascii.py3
-rw-r--r--Lib/test/test_os.py23
-rw-r--r--Lib/test/test_popen.py4
-rw-r--r--Lib/test/test_posix.py8
-rw-r--r--Lib/test/test_zlib.py8
5 files changed, 43 insertions, 3 deletions
diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py
index 50ad56e..389daa0 100644
--- a/Lib/test/test_binascii.py
+++ b/Lib/test/test_binascii.py
@@ -179,6 +179,8 @@ class BinASCIITest(unittest.TestCase):
self.assertEqual(binascii.unhexlify(self.type2test(t)), u)
def test_qp(self):
+ binascii.a2b_qp(data=b"", header=False) # Keyword arguments allowed
+
# A test for SF bug 534347 (segfaults without the proper fix)
try:
binascii.a2b_qp(b"", **{1:1})
@@ -186,6 +188,7 @@ class BinASCIITest(unittest.TestCase):
pass
else:
self.fail("binascii.a2b_qp(**{1:1}) didn't raise TypeError")
+
self.assertEqual(binascii.a2b_qp(b"= "), b"= ")
self.assertEqual(binascii.a2b_qp(b"=="), b"=")
self.assertEqual(binascii.a2b_qp(b"=AX"), b"=AX")
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index adedcd9..1a38dbe 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -58,7 +58,7 @@ HAVE_WHEEL_GROUP = sys.platform.startswith('freebsd') and os.getgid() == 0
# Tests creating TESTFN
class FileTests(unittest.TestCase):
def setUp(self):
- if os.path.exists(support.TESTFN):
+ if os.path.lexists(support.TESTFN):
os.unlink(support.TESTFN)
tearDown = setUp
@@ -162,6 +162,19 @@ class FileTests(unittest.TestCase):
with open(TESTFN2, 'r') as f:
self.assertEqual(f.read(), "1")
+ def test_open_keywords(self):
+ f = os.open(path=__file__, flags=os.O_RDONLY, mode=0o777,
+ dir_fd=None)
+ os.close(f)
+
+ def test_symlink_keywords(self):
+ symlink = support.get_attribute(os, "symlink")
+ try:
+ symlink(src='target', dst=support.TESTFN,
+ target_is_directory=False, dir_fd=None)
+ except (NotImplementedError, OSError):
+ pass # No OS support or unprivileged user
+
# Test attributes on return values from os.*stat* family.
class StatAttributeTests(unittest.TestCase):
@@ -2151,6 +2164,14 @@ class TestSendfile(unittest.TestCase):
os.sendfile(self.sockno, self.fileno, -1, 4096)
self.assertEqual(cm.exception.errno, errno.EINVAL)
+ def test_keywords(self):
+ # Keyword arguments should be supported
+ os.sendfile(out=self.sockno, offset=0, count=4096,
+ **{'in': self.fileno})
+ if self.SUPPORT_HEADERS_TRAILERS:
+ os.sendfile(self.sockno, self.fileno, offset=0, count=4096,
+ headers=None, trailers=None, flags=0)
+
# --- headers / trailers tests
@requires_headers_trailers
diff --git a/Lib/test/test_popen.py b/Lib/test/test_popen.py
index 225e41f..116b3dd 100644
--- a/Lib/test/test_popen.py
+++ b/Lib/test/test_popen.py
@@ -57,6 +57,10 @@ class PopenTest(unittest.TestCase):
with os.popen("echo hello") as f:
self.assertEqual(list(f), ["hello\n"])
+ def test_keywords(self):
+ with os.popen(cmd="exit 0", mode="w", buffering=-1):
+ pass
+
def test_main():
support.run_unittest(PopenTest)
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index aeb8924..d767989 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -443,6 +443,14 @@ class PosixTester(unittest.TestCase):
else:
self.assertTrue(stat.S_ISFIFO(posix.stat(support.TESTFN).st_mode))
+ # Keyword arguments are also supported
+ support.unlink(support.TESTFN)
+ try:
+ posix.mknod(path=support.TESTFN, mode=mode, device=0,
+ dir_fd=None)
+ except OSError as e:
+ self.assertIn(e.errno, (errno.EPERM, errno.EINVAL))
+
@unittest.skipUnless(hasattr(posix, 'stat'), 'test needs posix.stat()')
@unittest.skipUnless(hasattr(posix, 'makedev'), 'test needs posix.makedev()')
def test_makedev(self):
diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py
index 1daa8f8..53bb2ad 100644
--- a/Lib/test/test_zlib.py
+++ b/Lib/test/test_zlib.py
@@ -222,9 +222,9 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
level = 2
method = zlib.DEFLATED
wbits = -12
- memlevel = 9
+ memLevel = 9
strategy = zlib.Z_FILTERED
- co = zlib.compressobj(level, method, wbits, memlevel, strategy)
+ co = zlib.compressobj(level, method, wbits, memLevel, strategy)
x1 = co.compress(HAMLET_SCENE)
x2 = co.flush()
dco = zlib.decompressobj(wbits)
@@ -232,6 +232,10 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
y2 = dco.flush()
self.assertEqual(HAMLET_SCENE, y1 + y2)
+ # keyword arguments should also be supported
+ zlib.compressobj(level=level, method=method, wbits=wbits,
+ memLevel=memLevel, strategy=strategy, zdict=b"")
+
def test_compressincremental(self):
# compress object in steps, decompress object as one-shot
data = HAMLET_SCENE * 128