From 4d1f0b36c43780586f5d0c2622eb92d068ebe281 Mon Sep 17 00:00:00 2001 From: fujiwarat Date: Sun, 21 Mar 2021 15:25:41 +0900 Subject: [PATCH] tests: Output info to stderr instead of StringIO --- tests/anthytest.py | 51 ++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/tests/anthytest.py b/tests/anthytest.py index bff3078..1d18d19 100755 --- a/tests/anthytest.py +++ b/tests/anthytest.py @@ -28,17 +28,31 @@ TAP_MODULE_PYCOTAP = list(range(3)) tap_module = TAP_MODULE_NONE +# Need to flush the output against Gtk.main() +def printflush(sentence): + try: + print(sentence, flush=True) + except IOError: + pass + +def printerr(sentence): + try: + print(sentence, flush=True, file=sys.stderr) + except IOError: + pass + try: from tap import TAPTestRunner tap_module = TAP_MODULE_TAPPY - print('Load tappy') + printflush('## Load tappy') except ModuleNotFoundError: try: from pycotap import TAPTestRunner + from pycotap import LogMode tap_module = TAP_MODULE_PYCOTAP - print('Load pycotap') + printflush('## Load pycotap') except ModuleNotFoundError as err: - print('Ignore tap module: %s' % str(err)) + printflush('## Ignore tap module: %s' % str(err)) PY3K = sys.version_info >= (3, 0) DONE_EXIT = True @@ -55,18 +69,6 @@ sys.path.append('/usr/share/ibus-anthy/engine') from anthycases import TestCases -# Need to flush the output against Gtk.main() -def printflush(sentence): - try: - print(sentence, flush=True) - except IOError: - pass - -def printerr(sentence): - try: - print(sentence, flush=True, file=sys.stderr) - except IOError: - pass @unittest.skipIf(Gdk.Display.open('') == None, 'Display cannot be open.') class AnthyTest(unittest.TestCase): @@ -83,8 +85,10 @@ class AnthyTest(unittest.TestCase): self.__test_index = 0 self.__conversion_index = 0 self.__commit_done = False + self.__engine = None def register_ibus_engine(self): + printflush('## Registering engine') self.__bus = IBus.Bus() if not self.__bus.is_connected(): self.fail('ibus-daemon is not running') @@ -144,6 +148,7 @@ class AnthyTest(unittest.TestCase): def __create_engine_cb(self, factory, engine_name): if engine_name == 'testanthy': + printflush('## Creating engine') try: import engine except ModuleNotFoundError as e: @@ -176,14 +181,20 @@ class AnthyTest(unittest.TestCase): window = Gtk.Window(type = Gtk.WindowType.TOPLEVEL) self.__entry = entry = Gtk.Entry() window.connect('destroy', Gtk.main_quit) + entry.connect('map', self.__entry_map_cb) entry.connect('focus-in-event', self.__entry_focus_in_event_cb) entry.connect('preedit-changed', self.__entry_preedit_changed_cb) buffer = entry.get_buffer() buffer.connect('inserted-text', self.__buffer_inserted_text_cb) window.add(entry) window.show_all() + printflush('## Build window') + + def __entry_map_cb(self, entry): + printflush('## Map window') def __entry_focus_in_event_cb(self, entry, event): + printflush('## Get focus') if self.__test_index == len(TestCases['tests']): if DONE_EXIT: Gtk.main_quit() @@ -231,11 +242,11 @@ class AnthyTest(unittest.TestCase): schema = "org.freedesktop.ibus.engine.anthy.common"); result = settings.get_int('input-mode') if result != 0: - printflush('Enable hiragana %d' % result) + printflush('## Enable hiragana %d' % result) key = TestCases['init'] self.__typing(key[0], key[1], key[2]) else: - printflush('Already hiragana') + printflush('## Already hiragana') def __main_test(self): self.__conversion_index = 0 @@ -371,7 +382,11 @@ def main(): if args.tap: loader = unittest.TestLoader() - runner = TAPTestRunner() + if tap_module == TAP_MODULE_PYCOTAP: + # Log should be in stderr instead of StringIO + runner = TAPTestRunner(test_output_log=LogMode.LogToError) + else: + runner = TAPTestRunner() if tap_module == TAP_MODULE_TAPPY: runner.set_stream(True) unittest.main(testRunner=runner, testLoader=loader) -- 2.28.0