コード例 #1
0
ファイル: test_iomenu.py プロジェクト: T882200/la_recipes
    def test_writelines(self):
        shell = MockShell()
        f = PseudoOutputFile(shell, 'stdout', 'utf-8')
        f.writelines([])
        self.assertEqual(shell.written, [])
        shell.reset()
        f.writelines(['one\n', 'two'])
        self.assertEqual(shell.written, [('one\n', 'stdout'),
                                         ('two', 'stdout')])
        shell.reset()
        f.writelines(['on\xe8\n', 'tw\xf2'])
        self.assertEqual(shell.written, [('on\xe8\n', 'stdout'),
                                         ('tw\xf2', 'stdout')])
        shell.reset()

        f.writelines([S('t\xe8st')])
        self.assertEqual(shell.written, [('t\xe8st', 'stdout')])
        self.assertEqual(type(shell.written[0][0]), str)
        shell.reset()

        self.assertRaises(TypeError, f.writelines)
        self.assertEqual(shell.written, [])
        self.assertRaises(TypeError, f.writelines, 123)
        self.assertEqual(shell.written, [])
        self.assertRaises(TypeError, f.writelines, [b'test'])
        self.assertRaises(TypeError, f.writelines, [123])
        self.assertEqual(shell.written, [])
        self.assertRaises(TypeError, f.writelines, [], [])
        self.assertEqual(shell.written, [])
コード例 #2
0
ファイル: pyshell.py プロジェクト: emilyemorehouse/ast-and-me
 def __init__(self, flist=None):
     if use_subprocess:
         ms = self.menu_specs
         if ms[2][0] != 'shell':
             ms.insert(2, ('shell', 'She_ll'))
     self.interp = ModifiedInterpreter(self)
     if flist is None:
         root = Tk()
         fixwordbreaks(root)
         root.withdraw()
         flist = PyShellFileList(root)
     OutputWindow.__init__(self, flist, None, None)
     self.usetabs = True
     self.indentwidth = 8
     self.context_use_ps1 = True
     text = self.text
     text.configure(wrap='char')
     text.bind('<<newline-and-indent>>', self.enter_callback)
     text.bind('<<plain-newline-and-indent>>', self.linefeed_callback)
     text.bind('<<interrupt-execution>>', self.cancel_callback)
     text.bind('<<end-of-file>>', self.eof_callback)
     text.bind('<<open-stack-viewer>>', self.open_stack_viewer)
     text.bind('<<toggle-debugger>>', self.toggle_debugger)
     text.bind('<<toggle-jit-stack-viewer>>', self.toggle_jit_stack_viewer)
     if use_subprocess:
         text.bind('<<view-restart>>', self.view_restart_mark)
         text.bind('<<restart-shell>>', self.restart_shell)
     self.save_stdout = sys.stdout
     self.save_stderr = sys.stderr
     self.save_stdin = sys.stdin
     from idlelib import iomenu
     self.stdin = PseudoInputFile(self, 'stdin', iomenu.encoding)
     self.stdout = PseudoOutputFile(self, 'stdout', iomenu.encoding)
     self.stderr = PseudoOutputFile(self, 'stderr', iomenu.encoding)
     self.console = PseudoOutputFile(self, 'console', iomenu.encoding)
     if not use_subprocess:
         sys.stdout = self.stdout
         sys.stderr = self.stderr
         sys.stdin = self.stdin
     try:
         import pydoc
         pydoc.pager = pydoc.plainpager
     except:
         sys.stderr = sys.__stderr__
         raise
     self.history = self.History(self.text)
     self.pollinterval = 50
コード例 #3
0
ファイル: test_iomenu.py プロジェクト: T882200/la_recipes
 def test_unsupported(self):
     shell = MockShell()
     f = PseudoOutputFile(shell, 'stdout', 'utf-8')
     self.assertRaises(OSError, f.fileno)
     self.assertRaises(OSError, f.tell)
     self.assertRaises(OSError, f.seek, 0)
     self.assertRaises(OSError, f.read, 0)
     self.assertRaises(OSError, f.readline, 0)
コード例 #4
0
ファイル: test_iomenu.py プロジェクト: T882200/la_recipes
 def test_close(self):
     shell = MockShell()
     f = PseudoOutputFile(shell, 'stdout', 'utf-8')
     self.assertFalse(f.closed)
     f.write('test')
     f.close()
     self.assertTrue(f.closed)
     self.assertRaises(ValueError, f.write, 'x')
     self.assertEqual(shell.written, [('test', 'stdout')])
     f.close()
     self.assertRaises(TypeError, f.close, 1)
コード例 #5
0
ファイル: test_iomenu.py プロジェクト: T882200/la_recipes
 def test_misc(self):
     shell = MockShell()
     f = PseudoOutputFile(shell, 'stdout', 'utf-8')
     self.assertIsInstance(f, io.TextIOBase)
     self.assertEqual(f.encoding, 'utf-8')
     self.assertIsNone(f.errors)
     self.assertIsNone(f.newlines)
     self.assertEqual(f.name, '<stdout>')
     self.assertFalse(f.closed)
     self.assertTrue(f.isatty())
     self.assertFalse(f.readable())
     self.assertTrue(f.writable())
     self.assertFalse(f.seekable())
コード例 #6
0
 def test_write(self):
     shell = MockShell()
     f = PseudoOutputFile(shell, 'stdout', 'utf-8')
     f.write('test')
     self.assertEqual(shell.written, [('test', 'stdout')])
     shell.reset()
     f.write('tèst')
     self.assertEqual(shell.written, [('tèst', 'stdout')])
     shell.reset()
     f.write(S('tèst'))
     self.assertEqual(shell.written, [('tèst', 'stdout')])
     self.assertEqual(type(shell.written[0][0]), str)
     shell.reset()
     self.assertRaises(TypeError, f.write)
     self.assertEqual(shell.written, [])
     self.assertRaises(TypeError, f.write, b'test')
     self.assertRaises(TypeError, f.write, 123)
     self.assertEqual(shell.written, [])
     self.assertRaises(TypeError, f.write, 'test', 'spam')
     self.assertEqual(shell.written, [])