# -*- coding: utf-8 -*- #***************************************************************************** # Copyright (C) 2006 Michael Graz. # # Distributed under the terms of the BSD License. The full license is in # the file COPYING, distributed as part of this software. #***************************************************************************** from pyreadline.modes.emacs import * from pyreadline import keysyms from pyreadline.lineeditor import lineobj from pyreadline.keysyms.common import make_KeyPress_from_keydescr import unittest class MockReadline: def __init__ (self): self.l_buffer=lineobj.ReadLineTextBuffer("") self._history=history.LineHistory() def add_history (self, line): self._history.add_history (lineobj.TextLine (line)) def _print_prompt (self): pass def _bell (self): pass def insert_text(self, string): '''Insert text into the command line.''' self.l_buffer.insert_text(string) class MockConsole: def __init__ (self): self.bell_count = 0 self.text = '' def size (self): return (1, 1) def cursor(self, visible=None, size=None): pass def bell (self): self.bell_count += 1 def write (self, text): self.text += text class Event: def __init__ (self, char): if char=="escape": self.char='\x1b' elif char=="backspace": self.char='\x08' else: self.char = char def keytext_to_keyinfo_and_event (keytext): keyinfo = keysyms.common.make_KeyPress_from_keydescr (keytext) if len(keytext) == 3 and keytext[0] == '"' and keytext[2] == '"': event = Event (keytext[1]) else: event = Event (keyinfo.tuple() [3]) return keyinfo, event #override runTests from from main in unittest to remove sys.exit call class Tester(unittest.TestProgram): def runTests(self): if self.testRunner is None: self.testRunner = unittest.TextTestRunner(verbosity=self.verbosity) result = self.testRunner.run(self.test) # sys.exit(not result.wasSuccessful())