diff options
Diffstat (limited to 'lldb/third_party/Python/module/pexpect-4.6/tests/test_unicode.py')
-rw-r--r-- | lldb/third_party/Python/module/pexpect-4.6/tests/test_unicode.py | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/lldb/third_party/Python/module/pexpect-4.6/tests/test_unicode.py b/lldb/third_party/Python/module/pexpect-4.6/tests/test_unicode.py deleted file mode 100644 index 9b5b988a497..00000000000 --- a/lldb/third_party/Python/module/pexpect-4.6/tests/test_unicode.py +++ /dev/null @@ -1,187 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -import platform -import tempfile -import sys -import time - -import pexpect -import unittest -from . import PexpectTestCase - -# the program cat(1) may display ^D\x08\x08 when \x04 (EOF, Ctrl-D) is sent -_CAT_EOF = '^D\x08\x08' - -class UnicodeTests(PexpectTestCase.PexpectTestCase): - def test_expect_basic (self): - p = pexpect.spawnu('cat') - p.sendline('Hello') - p.sendline('there') - p.sendline('Mr. þython') # þ is more like th than p, but never mind - p.expect('Hello') - p.expect('there') - p.expect('Mr. þython') - p.sendeof () - p.expect (pexpect.EOF) - - def test_expect_exact_basic (self): - p = pexpect.spawnu('cat') - p.sendline('Hello') - p.sendline('there') - p.sendline('Mr. þython') - p.expect_exact('Hello') - p.expect_exact('there') - p.expect_exact('Mr. þython') - p.sendeof() - p.expect_exact (pexpect.EOF) - - def test_expect_setecho_toggle(self): - '''This tests that echo may be toggled off. - ''' - p = pexpect.spawnu('cat', timeout=5) - try: - self._expect_echo_toggle_off(p) - except IOError: - if sys.platform.lower().startswith('sunos'): - if hasattr(unittest, 'SkipTest'): - raise unittest.SkipTest("Not supported on this platform.") - return 'skip' - raise - self._expect_echo_toggle_on(p) - - def test_expect_echo_exact (self): - '''Like test_expect_echo(), but using expect_exact(). - ''' - p = pexpect.spawnu('cat', timeout=5) - p.expect = p.expect_exact - self._expect_echo(p) - - def test_expect_setecho_toggle_exact(self): - p = pexpect.spawnu('cat', timeout=5) - p.expect = p.expect_exact - try: - self._expect_echo_toggle_off(p) - except IOError: - if sys.platform.lower().startswith('sunos'): - if hasattr(unittest, 'SkipTest'): - raise unittest.SkipTest("Not supported on this platform.") - return 'skip' - raise - self._expect_echo_toggle_on(p) - - def _expect_echo (self, p): - p.sendline('1234') # Should see this twice (once from tty echo and again from cat). - index = p.expect (['1234', 'abcdé', 'wxyz', pexpect.EOF, pexpect.TIMEOUT]) - assert index == 0, (index, p.before) - index = p.expect (['1234', 'abcdé', 'wxyz', pexpect.EOF]) - assert index == 0, index - - def _expect_echo_toggle_off(self, p): - p.setecho(0) # Turn off tty echo - p.waitnoecho() - p.sendline('abcdé') # Now, should only see this once. - p.sendline('wxyz') # Should also be only once. - index = p.expect ([pexpect.EOF,pexpect.TIMEOUT, 'abcdé', 'wxyz', '1234']) - assert index == 2, index - index = p.expect ([pexpect.EOF, 'abcdé', 'wxyz', '7890']) - assert index == 2, index - - def _expect_echo_toggle_on(self, p): - p.setecho(1) # Turn on tty echo - time.sleep(0.2) # there is no waitecho() ! - p.sendline('7890') # Should see this twice. - index = p.expect ([pexpect.EOF, 'abcdé', 'wxyz', '7890']) - assert index == 3, index - index = p.expect ([pexpect.EOF, 'abcdé', 'wxyz', '7890']) - assert index == 3, index - p.sendeof() - - def test_log_unicode(self): - msg = "abcΩ÷" - filename_send = tempfile.mktemp() - filename_read = tempfile.mktemp() - p = pexpect.spawnu('cat') - if platform.python_version_tuple() < ('3', '0', '0'): - import codecs - def open(fname, mode, **kwargs): - if 'newline' in kwargs: - del kwargs['newline'] - return codecs.open(fname, mode, **kwargs) - else: - import io - open = io.open - - p.logfile_send = open(filename_send, 'w', encoding='utf-8') - p.logfile_read = open(filename_read, 'w', encoding='utf-8') - p.sendline(msg) - p.sendeof() - p.expect(pexpect.EOF) - p.close() - p.logfile_send.close() - p.logfile_read.close() - - # ensure the 'send' log is correct, - with open(filename_send, 'r', encoding='utf-8') as f: - self.assertEqual(f.read(), msg + '\n\x04') - - # ensure the 'read' log is correct, - with open(filename_read, 'r', encoding='utf-8', newline='') as f: - output = f.read().replace(_CAT_EOF, '') - self.assertEqual(output, (msg + '\r\n')*2 ) - - - def test_spawn_expect_ascii_unicode(self): - # A bytes-based spawn should be able to handle ASCII-only unicode, for - # backwards compatibility. - p = pexpect.spawn('cat') - p.sendline('Camelot') - p.expect('Camelot') - - p.sendline('Aargh') - p.sendline('Aårgh') - p.expect_exact('Aargh') - - p.sendeof() - p.expect(pexpect.EOF) - - def test_spawn_send_unicode(self): - # A bytes-based spawn should be able to send arbitrary unicode - p = pexpect.spawn('cat') - p.sendline('3½') - p.sendeof() - p.expect(pexpect.EOF) - - def test_spawn_utf8_incomplete(self): - # This test case ensures correct incremental decoding, which - # otherwise fails when the stream inspected by os.read() - # does not align exactly at a utf-8 multibyte boundary: - # UnicodeDecodeError: 'utf8' codec can't decode byte 0xe2 in - # position 0: unexpected end of data - p = pexpect.spawnu('cat', maxread=1) - p.sendline('▁▂▃▄▅▆▇█') - p.sendeof() - p.expect('▁▂▃▄▅▆▇█') - - def test_readline_bin_echo(self): - # Test using readline() with spawnu objects. pexpect 3.2 had threw - # a TypeError when concatenating a bytestring to a unicode type. - - # given, - child = pexpect.spawnu('echo', ['input', ]) - - # exercise, - assert child.readline() == 'input' + child.crlf - - def test_unicode_argv(self): - """ Ensure a program can be executed with unicode arguments. """ - p = pexpect.spawn(u'echo ǝpoɔıun', timeout=5, encoding='utf8') - p.expect(u'ǝpoɔıun') - p.expect(pexpect.EOF) - assert not p.isalive() - assert p.exitstatus == 0 - -if __name__ == '__main__': - unittest.main() - -suite = unittest.makeSuite(UnicodeTests, 'test') |