From 5092b6ef62a5ba8b794037fae4b7a5f3bd062571 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Wed, 18 Nov 2015 12:39:01 +0100 Subject: [PATCH] Fix bug #254 --- src/cutecoin/core/account.py | 2 + src/cutecoin/gui/preferences.py | 2 +- .../tests/gui/preferences/__init__.py | 0 .../preferences/test_preferences_dialog.py | 71 +++++++++++++++++++ 4 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/cutecoin/tests/gui/preferences/__init__.py create mode 100644 src/cutecoin/tests/gui/preferences/test_preferences_dialog.py diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py index ae4868ab..5701145f 100644 --- a/src/cutecoin/core/account.py +++ b/src/cutecoin/core/account.py @@ -357,6 +357,8 @@ class Account(QObject): tries = 0 request = bma.wot.CertifiersOf nonlocal registered + #TODO: The algorithm is quite dirty + #Multiplying the tries without any reason... while tries < 3 and not registered[0] and not registered[2]: try: data = yield from community.bma_access.simple_request(request, diff --git a/src/cutecoin/gui/preferences.py b/src/cutecoin/gui/preferences.py index 0a9f6ff9..efabc4f2 100644 --- a/src/cutecoin/gui/preferences.py +++ b/src/cutecoin/gui/preferences.py @@ -50,9 +50,9 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog): self.edit_proxy_address.setEnabled(self.checkbox_proxy.isChecked()) self.checkbox_proxy.stateChanged.connect(self.handle_proxy_change) - self.spinbox_proxy_port.setValue(self.app.preferences.get('proxy_port', 8080)) self.spinbox_proxy_port.setMinimum(0) self.spinbox_proxy_port.setMaximum(55636) + self.spinbox_proxy_port.setValue(self.app.preferences.get('proxy_port', 8080)) self.edit_proxy_address.setText(self.app.preferences.get('proxy_address', "")) def handle_proxy_change(self): diff --git a/src/cutecoin/tests/gui/preferences/__init__.py b/src/cutecoin/tests/gui/preferences/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/cutecoin/tests/gui/preferences/test_preferences_dialog.py b/src/cutecoin/tests/gui/preferences/test_preferences_dialog.py new file mode 100644 index 00000000..768fd531 --- /dev/null +++ b/src/cutecoin/tests/gui/preferences/test_preferences_dialog.py @@ -0,0 +1,71 @@ +import sys +import unittest +import asyncio +import quamash +import time +import logging +from ucoinpy.documents.peer import BMAEndpoint +from quamash import QApplication +from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QMessageBox +from PyQt5.QtCore import QLocale, Qt +from PyQt5.QtTest import QTest +from ucoinpy.api.bma import API +from cutecoin.tests.mocks.monkeypatch import pretender_reversed +from cutecoin.tests.mocks.bma import init_new_community +from cutecoin.core.registry.identities import IdentitiesRegistry +from cutecoin.gui.preferences import PreferencesDialog +from cutecoin.core.app import Application +from cutecoin.core import Account, Community, Wallet +from cutecoin.core.net import Network, Node +from cutecoin.core.net.api.bma.access import BmaAccess +from cutecoin.tests import get_application, unitttest_exception_handler +from ucoinpy.api import bma + + +class TestCertificationDialog(unittest.TestCase): + def setUp(self): + self.qapplication = get_application() + QLocale.setDefault(QLocale("en_GB")) + self.lp = quamash.QEventLoop(self.qapplication) + asyncio.set_event_loop(self.lp) + #self.lp.set_exception_handler(lambda lp, ctx : unitttest_exception_handler(self, lp, ctx)) + self.identities_registry = IdentitiesRegistry({}) + + def tearDown(self): + try: + self.lp.close() + finally: + asyncio.set_event_loop(None) + + def test_preferences_default(self): + self.application = Application(self.qapplication, self.lp, self.identities_registry) + preferences_dialog = PreferencesDialog(self.application) + self.assertEqual(preferences_dialog.combo_account.currentText(), + self.application.preferences['account']) + self.assertEqual(preferences_dialog.combo_language.currentText(), + self.application.preferences['lang']) + self.assertEqual(preferences_dialog.combo_referential.currentIndex(), + self.application.preferences['ref']) + self.assertEqual(preferences_dialog.checkbox_expertmode.isChecked(), + self.application.preferences['expert_mode']) + self.assertEqual(preferences_dialog.checkbox_maximize.isChecked(), + self.application.preferences['maximized']) + self.assertEqual(preferences_dialog.checkbox_notifications.isChecked(), + self.application.preferences['notifications']) + self.assertEqual(preferences_dialog.checkbox_proxy.isChecked(), + self.application.preferences['enable_proxy']) + self.assertEqual(preferences_dialog.edit_proxy_address.text(), + self.application.preferences['proxy_address']) + self.assertEqual(preferences_dialog.spinbox_proxy_port.value(), + self.application.preferences['proxy_port']) + self.assertEqual(preferences_dialog.checkbox_international_system.isChecked(), + self.application.preferences['international_system_of_units']) + self.assertEqual(preferences_dialog.checkbox_auto_refresh.isChecked(), + self.application.preferences['auto_refresh']) + self.lp.run_until_complete(asyncio.sleep(1)) + + +if __name__ == '__main__': + logging.basicConfig(stream=sys.stderr) + logging.getLogger().setLevel(logging.DEBUG) + unittest.main() -- GitLab