summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_winconsoleio.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_winconsoleio.py')
-rw-r--r--Lib/test/test_winconsoleio.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/Lib/test/test_winconsoleio.py b/Lib/test/test_winconsoleio.py
index a10d63d..d9076e7 100644
--- a/Lib/test/test_winconsoleio.py
+++ b/Lib/test/test_winconsoleio.py
@@ -142,6 +142,29 @@ class WindowsConsoleIOTests(unittest.TestCase):
with ConIO('CONOUT$', 'w') as f:
self.assertEqual(f.write(b''), 0)
+ @requires_resource('console')
+ def test_write(self):
+ testcases = []
+ with ConIO('CONOUT$', 'w') as f:
+ for a in [
+ b'',
+ b'abc',
+ b'\xc2\xa7\xe2\x98\x83\xf0\x9f\x90\x8d',
+ b'\xff'*10,
+ ]:
+ for b in b'\xc2\xa7', b'\xe2\x98\x83', b'\xf0\x9f\x90\x8d':
+ testcases.append(a + b)
+ for i in range(1, len(b)):
+ data = a + b[:i]
+ testcases.append(data + b'z')
+ testcases.append(data + b'\xff')
+ # incomplete multibyte sequence
+ with self.subTest(data=data):
+ self.assertEqual(f.write(data), len(a))
+ for data in testcases:
+ with self.subTest(data=data):
+ self.assertEqual(f.write(data), len(data))
+
def assertStdinRoundTrip(self, text):
stdin = open('CONIN$', 'r')
old_stdin = sys.stdin