import ibus-table-1.9.18-6.el8

This commit is contained in:
CentOS Sources 2021-05-18 02:59:55 -04:00 committed by Andrew Lukoshko
parent 7702ba0b61
commit 66be8bdc00
5 changed files with 9100 additions and 2 deletions

1816
SOURCES/add-a-gui-test.patch Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,166 @@
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

View File

@ -0,0 +1,62 @@
diff -ru ibus-table-1.9.18.orig/tests/test_0_gtk.py ibus-table-1.9.18/tests/test_0_gtk.py
--- ibus-table-1.9.18.orig/tests/test_0_gtk.py 2020-07-27 09:41:25.799087549 +0200
+++ ibus-table-1.9.18/tests/test_0_gtk.py 2020-07-28 12:23:43.127130148 +0200
@@ -68,6 +68,7 @@
DONE_EXIT = True
ENGINE_NAME = 'wubi-jidian86'
+CONFIG_SECTION = 'engine/table/%s' % ENGINE_NAME
from gtkcases import TestCases
@@ -96,16 +97,18 @@
class SimpleGtkTestCase(unittest.TestCase):
global DONE_EXIT
global ENGINE_NAME
+ global CONFIG_SECTION
ENGINE_PATH = '/com/redhat/IBus/engines/table/Test/Engine'
@classmethod
def setUpClass(cls):
cls._flag = False
IBus.init()
- cls._gsettings = Gio.Settings(
- schema='org.freedesktop.ibus.engine.table',
- path='/org/freedesktop/ibus/engine/table/%s/' % ENGINE_NAME)
- cls._orig_chinesemode = cls._gsettings.get_int('chinesemode')
+ cls.__bus = IBus.Bus()
+ cls._config = cls.__bus.get_config()
+ cls._orig_chinesemode = table.variant_to_value(
+ cls._config.get_value(
+ CONFIG_SECTION, 'chinesemode'))
signums = [getattr(signal, s, None) for s in
'SIGINT SIGTERM SIGHUP'.split()]
for signum in filter(None, signums):
@@ -116,7 +119,11 @@
(signum, original_handler))
@classmethod
def tearDownClass(cls):
- cls._gsettings.set_int('chinesemode', cls._orig_chinesemode)
+ if cls._orig_chinesemode:
+ cls._config.set_value(
+ CONFIG_SECTION,
+ 'chinesemode',
+ GLib.Variant.new_int32(cls._orig_chinesemode))
@classmethod
def signal_handler(cls, user_data):
@@ -136,10 +142,12 @@
self.__inserted_text = ''
self.__commit_done = False
self.__reset_coming = False
- self._gsettings.set_int('chinesemode', 4)
+ self._config.set_value(
+ CONFIG_SECTION,
+ 'chinesemode',
+ GLib.Variant.new_int32(4))
def register_ibus_engine(self):
- self.__bus = IBus.Bus()
if not self.__bus.is_connected():
self.fail('ibus-daemon is not running')
return False

View File

@ -1,17 +1,34 @@
Name: ibus-table
Version: 1.9.18
Release: 3%{?dist}
Release: 6%{?dist}
Summary: The Table engine for IBus platform
License: LGPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://mfabian.fedorapeople.org/ibus-table/%{name}-%{version}.tar.gz
Patch0: add-a-test-suite.patch
Patch1: add-a-gui-test.patch
Patch2: use-config-not-gsettings-for-gui-test.patch
Patch3: fix-test-cases-for-old-ibus-table.patch
Requires: ibus > 1.3.0
Requires: python(abi) >= 3.3
Requires: %{__python3}
BuildRequires: ibus-devel > 1.3.0
BuildRequires: python3-devel
# for the unit tests
BuildRequires: automake
BuildRequires: autoconf
BuildRequires: gettext-devel
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: python3-mock
BuildRequires: python3-gobject
BuildRequires: python3-gobject-base
BuildRequires: dbus-x11
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: ibus-table-chinese-wubi-jidian
BuildRequires: ibus-table-chinese-cangjie
BuildRequires: ibus-table-chinese-stroke5
Obsoletes: ibus-table-additional < 1.2.0.20100111-5
@ -29,12 +46,25 @@ Requires: %{name} = %{version}-%{release}, pkgconfig
%description -n %{name}-devel
Development files for %{name}.
%package tests
Summary: Tests for the %{name} package
Requires: %{name} = %{version}-%{release}
%description tests
The %{name}-tests package contains tests that can be used to verify
the functionality of the installed %{name} package.
%prep
%setup -q
%patch0 -p1 -b .add-a-test-suite
%patch1 -p1 -b .add-a-gui-test
%patch2 -p1 -b .use-config-not-gsettings-for-gui-test
%patch3 -p1 -b .fix-test-cases-for-old-ibus-table
%build
export PYTHON=%{__python3}
%configure --disable-static --disable-additional
./autogen.sh --prefix=/usr
%configure --enable-installed-tests
%__make %{?_smp_mflags}
%install
@ -46,6 +76,38 @@ export PYTHON=%{__python3}
%check
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml
pushd engine
# run doctests
python3 table.py
python3 it_util.py
popd
export DISPLAY=:1
Xvfb $DISPLAY -screen 0 1024x768x16 &
ibus-daemon -drx # not needed on Fedora 32
# A window manager and and ibus-daemon are needed to run the GUI
# test tests/test_gtk.py, for example i3 can be used.
#
# To debug what is going on if there is a problem with the GUI test
# add BuildRequires: x11vnc and start a vnc server:
#
# x11vnc -display $DISPLAY -unixsock /tmp/mysock -bg -nopw -listen localhost -xkb
#
# Then one can view what is going on outside of the chroot with vncviewer:
#
# vncviewer /var/lib/mock/fedora-32-x86_64/root/tmp/mysock
#
# The GUI test will be skipped if XDG_SESSION_TYPE is not x11 or wayland.
#
#ibus-daemon -drx
#touch /tmp/i3config
#i3 -c /tmp/i3config &
#export XDG_SESSION_TYPE=x11
make check && rc=0 || rc=1
cat tests/*.log
if [ $rc != 0 ] ; then
exit $rc
fi
%clean
%__rm -rf $RPM_BUILD_ROOT
@ -67,7 +129,25 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdat
%defattr(-, root, root, -)
%{_datadir}/pkgconfig/%{name}.pc
%files tests
%dir %{_libexecdir}/installed-tests
%{_libexecdir}/installed-tests/%{name}
%dir %{_datadir}/installed-tests
%{_datadir}/installed-tests/%{name}
%changelog
* Tue Feb 16 2021 Mike FABIAN <mfabian@redhat.com> - 1.9.18-6
- Fix a covscan error
- Related: rhbz#1929102
* Tue Feb 16 2021 Mike FABIAN <mfabian@redhat.com> - 1.9.18-5
- Bump release number to add the new subpackage ibus-table-tests
- Resolves: rhbz#1929102
* Sat Jul 25 2020 Mike FABIAN <mfabian@redhat.com> - 1.9.18-4
- Add gating tests to ibus-table
- Resolves: rhbz#1682163
* Thu Sep 20 2018 Tomas Orsava <torsava@redhat.com> - 1.9.18-3
- Require the Python interpreter directly instead of using the package name
- Related: rhbz#1619153