diff --git a/src/sakia/gui/dialogs/connection_cfg/controller.py b/src/sakia/gui/dialogs/connection_cfg/controller.py index 7cf9a5fb8e5b6ab2e5843d47c796822703634543..d1476b07a47e092bc7a6a8f8627c1335e0987545 100644 --- a/src/sakia/gui/dialogs/connection_cfg/controller.py +++ b/src/sakia/gui/dialogs/connection_cfg/controller.py @@ -159,7 +159,7 @@ class ConnectionConfigController(QObject): elif self.mode == ConnectionConfigController.PUBKEY: self._logger.debug("Pubkey mode") self.view.button_next.clicked.connect(self.check_pubkey) - if not self.view.label_action.text().endswidth(self.tr(" (Optional)")): + if not self.view.label_action.text().endswith(self.tr(" (Optional)")): self.view.label_action.setText(self.view.label_action.text() + self.tr(" (Optional)")) self.view.groupbox_key.hide() self.view.stacked_pages.setCurrentWidget(self.view.page_connection) diff --git a/src/sakia/gui/dialogs/contact/contact.ui b/src/sakia/gui/dialogs/contact/contact.ui index 12d90bb71f27d6f8446144332cc8118321d1f564..5a8a86a4f55177707d519ee5928d7fa6928685f9 100644 --- a/src/sakia/gui/dialogs/contact/contact.ui +++ b/src/sakia/gui/dialogs/contact/contact.ui @@ -26,7 +26,7 @@ <bool>true</bool> </attribute> <attribute name="verticalHeaderStretchLastSection"> - <bool>true</bool> + <bool>false</bool> </attribute> </widget> </item> diff --git a/src/sakia/gui/navigation/identities/table_model.py b/src/sakia/gui/navigation/identities/table_model.py index 719c305fa9d52ab9d655c9a7ebfbc8fa5ac09093..de482f274099251c496cccc55dbb0adbbfcd5a96 100644 --- a/src/sakia/gui/navigation/identities/table_model.py +++ b/src/sakia/gui/navigation/identities/table_model.py @@ -10,6 +10,7 @@ import asyncio class IdentitiesFilterProxyModel(QSortFilterProxyModel): def __init__(self, app, parent=None): super().__init__(parent) + self.app = app self.blockchain_processor = BlockchainProcessor.instanciate(app) def columnCount(self, parent): @@ -57,7 +58,7 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel): if source_index.column() in (IdentitiesTableModel.columns_ids.index('renewed'), IdentitiesTableModel.columns_ids.index('expiration')): if source_data: - ts = self.blockchain_processor.adjusted_ts(self.connection.currency, source_data) + ts = self.blockchain_processor.adjusted_ts(self.app.currency, source_data) return QLocale.toString( QLocale(), QDateTime.fromTime_t(ts).date(), @@ -67,7 +68,7 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel): return "" if source_index.column() == IdentitiesTableModel.columns_ids.index('publication'): if source_data: - ts = self.blockchain_processor.adjusted_ts(self.connection.currency, source_data) + ts = self.blockchain_processor.adjusted_ts(self.app.currency, source_data) return QLocale.toString( QLocale(), QDateTime.fromTime_t(ts), diff --git a/tests/functional/test_connection_cfg_dialog.py b/tests/functional/test_connection_cfg_dialog.py index 3c2dd2e6eb9967abe5b5ab452104005853bf7b32..09e3b610a4eafe7af9e1395eb3a406dca18ffced 100644 --- a/tests/functional/test_connection_cfg_dialog.py +++ b/tests/functional/test_connection_cfg_dialog.py @@ -28,6 +28,12 @@ def assert_key_parameters_behaviour(connection_config_dialog, user): assert connection_config_dialog.view.label_info.text() == user.key.pubkey +def assert_pubkey_parameters_behaviour(connection_config_dialog, user): + QTest.keyClicks(connection_config_dialog.view.edit_uid, user.uid) + QTest.keyClicks(connection_config_dialog.view.edit_pubkey, user.key.pubkey) + assert connection_config_dialog.view.button_next.isEnabled() is True + + @pytest.mark.asyncio async def test_register_empty_blockchain(application, fake_server, bob): connection_config_dialog = ConnectionConfigController.create_connection(None, application) @@ -137,3 +143,30 @@ Yours : {0}, the network : {1}""".format(wrong_bob_pubkey.pubkey, bob.pubkey) await connection_config_dialog.async_exec() await simple_fake_server.close() + + +@pytest.mark.asyncio +async def test_connect_pubkey_wrong_uid(application, simple_fake_server, wrong_bob_uid, bob): + connection_config_dialog = ConnectionConfigController.create_connection(None, application) + + def close_dialog(): + if connection_config_dialog.view.isVisible(): + connection_config_dialog.view.close() + + async def exec_test(): + QTest.mouseClick(connection_config_dialog.view.button_pubkey, Qt.LeftButton) + await asyncio.sleep(0.6) + QTest.mouseClick(connection_config_dialog.view.button_accept, Qt.LeftButton) + await asyncio.sleep(0.1) + assert connection_config_dialog.view.stacked_pages.currentWidget() == connection_config_dialog.view.page_connection + assert_pubkey_parameters_behaviour(connection_config_dialog, wrong_bob_uid) + QTest.mouseClick(connection_config_dialog.view.button_next, Qt.LeftButton) + await asyncio.sleep(0.6) + assert connection_config_dialog.view.label_info.text() == """Your pubkey or UID is different on the network. +Yours : {0}, the network : {1}""".format(wrong_bob_uid.uid, bob.uid) + connection_config_dialog.view.close() + + application.loop.call_later(10, close_dialog) + asyncio.ensure_future(exec_test()) + await connection_config_dialog.async_exec() + await simple_fake_server.close()