diff -Nru ibus-table-1.9.18/engine/table.py ibus-table-1.9.18.new/engine/table.py --- ibus-table-1.9.18/engine/table.py 2020-07-23 17:21:31.934904346 +0200 +++ ibus-table-1.9.18.new/engine/table.py 2020-07-23 17:28:19.342746241 +0200 @@ -1752,6 +1752,9 @@ self._input_mode) self._update_ui() + def get_pinyin_mode(self): + return self._editor._py_mode + def set_onechar_mode(self, mode=False, update_dconf=True): if mode == self._editor._onechar: return diff -Nru ibus-table-1.9.18/tests/test_0_gtk.py ibus-table-1.9.18.new/tests/test_0_gtk.py --- ibus-table-1.9.18/tests/test_0_gtk.py 2020-07-23 17:21:31.940904285 +0200 +++ ibus-table-1.9.18.new/tests/test_0_gtk.py 2020-07-23 17:37:23.234210681 +0200 @@ -205,14 +205,14 @@ object_path = '%s/%d' % (self.ENGINE_PATH, self.__id) db_dir = '/usr/share/ibus-table/tables' db_file = os.path.join(db_dir, engine_name + '.db') - database = tabsqlitedb.TabSqliteDb(filename=db_file, user_db=':memory:') - self.__engine = table.TabEngine( + database = tabsqlitedb.tabsqlitedb(filename=db_file, user_db=':memory:') + self.__engine = table.tabengine( self.__bus, object_path, database) self.__engine.connect('focus-in', self.__engine_focus_in) self.__engine.connect('focus-out', self.__engine_focus_out) - # FIXME: Need to connect 'reset' after TabEngine.clear_all_input_and_preedit() + # FIXME: Need to connect 'reset' after tabengine.clear_all_input_and_preedit() # is called. self.__engine.connect_after('reset', self.__engine_reset) self.__bus.get_connection().signal_subscribe( diff -Nru ibus-table-1.9.18/tests/test_it.py ibus-table-1.9.18.new/tests/test_it.py --- ibus-table-1.9.18/tests/test_it.py 2020-07-23 17:21:31.940904285 +0200 +++ ibus-table-1.9.18.new/tests/test_it.py 2020-07-23 17:29:52.032800325 +0200 @@ -78,7 +78,6 @@ ORIG_SINGLE_WILDCARD_CHAR = None ORIG_MULTI_WILDCARD_CHAR = None ORIG_PINYIN_MODE = None -ORIG_SUGGESTION_MODE = None def backup_original_settings(): global ENGINE @@ -97,7 +96,6 @@ global ORIG_SINGLE_WILDCARD_CHAR global ORIG_MULTI_WILDCARD_CHAR global ORIG_PINYIN_MODE - global ORIG_SUGGESTION_MODE ORIG_INPUT_MODE = ENGINE.get_input_mode() ORIG_CHINESE_MODE = ENGINE.get_chinese_mode() ORIG_LETTER_WIDTH = ENGINE.get_letter_width() @@ -113,7 +111,6 @@ ORIG_SINGLE_WILDCARD_CHAR = ENGINE.get_single_wildcard_char() ORIG_MULTI_WILDCARD_CHAR = ENGINE.get_multi_wildcard_char() ORIG_PINYIN_MODE = ENGINE.get_pinyin_mode() - ORIG_SUGGESTION_MODE = ENGINE.get_suggestion_mode() def restore_original_settings(): global ENGINE @@ -132,7 +129,6 @@ global ORIG_SINGLE_WILDCARD_CHAR global ORIG_MULTI_WILDCARD_CHAR global ORIG_PINYIN_MODE - global ORIG_SUGGESTION_MODE ENGINE.set_input_mode(ORIG_INPUT_MODE) ENGINE.set_chinese_mode(ORIG_CHINESE_MODE) ENGINE.set_letter_width(ORIG_LETTER_WIDTH[0], input_mode=0) @@ -150,7 +146,6 @@ ENGINE.set_single_wildcard_char(ORIG_SINGLE_WILDCARD_CHAR) ENGINE.set_multi_wildcard_char(ORIG_MULTI_WILDCARD_CHAR) ENGINE.set_pinyin_mode(ORIG_PINYIN_MODE) - ENGINE.set_suggestion_mode(ORIG_SUGGESTION_MODE) def set_default_settings(): global ENGINE @@ -256,7 +251,6 @@ ENGINE.set_multi_wildcard_char(multi_wildcard_char) ENGINE.set_pinyin_mode(False) - ENGINE.set_suggestion_mode(False) def set_up(engine_name): ''' @@ -290,7 +284,7 @@ assert IBus.PropList is not IBUS_PROP_LIST assert IBus.PropList is MockPropList # Reload the table module so that the patches - # are applied to TabEngine: + # are applied to tabengine: sys.path.insert(0, '../engine') importlib.reload(table) sys.path.pop(0) @@ -302,9 +296,9 @@ ENGINE = None tear_down() return False - TABSQLITEDB = tabsqlitedb.TabSqliteDb( + TABSQLITEDB = tabsqlitedb.tabsqlitedb( filename=db_file, user_db=':memory:') - ENGINE = table.TabEngine( + ENGINE = table.tabengine( bus, '/com/redhat/IBus/engines/table/%s/engine/0' %engine_name, TABSQLITEDB, @@ -380,59 +374,6 @@ self.assertEqual(ENGINE.mock_preedit_text, '') self.assertEqual(ENGINE.mock_committed_text, '工爱工') - def test_suggestion_mode(self): - if not ENGINE._ime_sg: - self.skipTest("This engine does not have a suggestion mode.") - # Suggestion mode is False by default: - self.assertEqual(ENGINE.get_suggestion_mode(), False) - self.assertEqual(ENGINE.get_pinyin_mode(), False) - ENGINE.do_process_key_event(IBus.KEY_a, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '工') - ENGINE.do_process_key_event(IBus.KEY_space, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '') - self.assertEqual(ENGINE.mock_committed_text, '工') - self.assertEqual(ENGINE._editor._lookup_table.mock_candidates, []) - ENGINE.set_suggestion_mode(True) - ENGINE.do_process_key_event(IBus.KEY_a, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '工') - ENGINE.do_process_key_event(IBus.KEY_space, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '') - self.assertEqual(ENGINE.mock_committed_text, '工工') - self.assertEqual(ENGINE._editor._lookup_table.mock_candidates, - ['工作人员 673 0', - '工作会议 310 0', - '工作报告 267 0', - '工人阶级 146 0', - '工作重点 78 0', - '工作小组 73 0', - '工业企业 71 0', - '工业大学 69 0', - '工作单位 61 0', - '工业生产 58 0']) - ENGINE.do_process_key_event(IBus.KEY_space, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '') - self.assertEqual(ENGINE.mock_committed_text, '工工作人员') - ENGINE.set_pinyin_mode(True) - ENGINE.do_process_key_event(IBus.KEY_a, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '爱') - ENGINE.do_process_key_event(IBus.KEY_space, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '') - self.assertEqual(ENGINE.mock_committed_text, '工工作人员爱') - self.assertEqual(ENGINE._editor._lookup_table.mock_candidates, - ['爱因斯坦 1109 0', - '爱情故事 519 0', - '爱国主义 191 0', - '爱尔兰语 91 0', - '爱好和平 62 0', - '爱情小说 58 0', - '爱不释手 39 0', - '爱国热情 35 0', - '爱莫能助 34 0', - '爱理不理 32 0']) - ENGINE.do_process_key_event(IBus.KEY_space, 0, 0) - self.assertEqual(ENGINE.mock_preedit_text, '') - self.assertEqual(ENGINE.mock_committed_text, '工工作人员爱因斯坦') - def test_commit_to_preedit_switching_to_pinyin_defining_a_phrase(self): ENGINE.do_process_key_event(IBus.KEY_a, 0, 0) # commit to preëdit needs a press and release of either