shadowbrokers-exploits/windows/fuzzbunch/pyreadline/test/common.py
2017-04-14 11:45:07 +02:00

78 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
#*****************************************************************************
# Copyright (C) 2006 Michael Graz. <mgraz@plan10.com>
#
# 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())