summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug_3406_quit_hangs2
-rw-r--r--changes/bug_handle_reconnecting1
-rw-r--r--changes/feature-3407_add-log-filtering1
-rw-r--r--src/leap/bitmask/crypto/tests/test_srpauth.py34
-rw-r--r--src/leap/bitmask/gui/loggerwindow.py23
-rw-r--r--src/leap/bitmask/gui/mainwindow.py3
-rw-r--r--src/leap/bitmask/gui/statuspanel.py2
-rw-r--r--src/leap/bitmask/gui/twisted_main.py6
-rw-r--r--src/leap/bitmask/gui/ui/loggerwindow.ui42
-rw-r--r--src/leap/bitmask/gui/ui/mainwindow.ui7
-rw-r--r--src/leap/bitmask/gui/ui/statuspanel.ui8
-rw-r--r--src/leap/bitmask/gui/ui/wizard.ui36
-rw-r--r--src/leap/bitmask/services/eip/tests/test_providerbootstrapper.py30
13 files changed, 131 insertions, 64 deletions
diff --git a/changes/bug_3406_quit_hangs b/changes/bug_3406_quit_hangs
new file mode 100644
index 00000000..77452780
--- /dev/null
+++ b/changes/bug_3406_quit_hangs
@@ -0,0 +1,2 @@
+ o Stop the twisted reactor adding the stop call to the call chain
+ instead of stopping it directly. Fixes #3406. \ No newline at end of file
diff --git a/changes/bug_handle_reconnecting b/changes/bug_handle_reconnecting
new file mode 100644
index 00000000..c6465949
--- /dev/null
+++ b/changes/bug_handle_reconnecting
@@ -0,0 +1 @@
+ o Reword RECONNECTING state of openvpn. Fixes #3429. \ No newline at end of file
diff --git a/changes/feature-3407_add-log-filtering b/changes/feature-3407_add-log-filtering
new file mode 100644
index 00000000..f4433af4
--- /dev/null
+++ b/changes/feature-3407_add-log-filtering
@@ -0,0 +1 @@
+ o Add filter option to the logger window. Closes #3407.
diff --git a/src/leap/bitmask/crypto/tests/test_srpauth.py b/src/leap/bitmask/crypto/tests/test_srpauth.py
index 043da15e..44cd6334 100644
--- a/src/leap/bitmask/crypto/tests/test_srpauth.py
+++ b/src/leap/bitmask/crypto/tests/test_srpauth.py
@@ -247,9 +247,9 @@ class SRPAuthTestCase(unittest.TestCase):
def wrapper(_):
with self.assertRaises(srpauth.SRPAuthUnknownUser):
- with mock.patch('leap.util.request_helpers.get_content',
- new=mock.create_autospec(get_content)) as \
- content:
+ with mock.patch(
+ 'leap.bitmask.util.request_helpers.get_content',
+ new=mock.create_autospec(get_content)) as content:
content.return_value = ("{}", 0)
self.auth_backend._start_authentication(
@@ -264,9 +264,9 @@ class SRPAuthTestCase(unittest.TestCase):
def wrapper(_):
with self.assertRaises(srpauth.SRPAuthBadStatusCode):
- with mock.patch('leap.util.request_helpers.get_content',
- new=mock.create_autospec(get_content)) as \
- content:
+ with mock.patch(
+ 'leap.bitmask.util.request_helpers.get_content',
+ new=mock.create_autospec(get_content)) as content:
content.return_value = ("{}", 0)
self.auth_backend._start_authentication(None,
@@ -281,9 +281,9 @@ class SRPAuthTestCase(unittest.TestCase):
def wrapper(_):
with self.assertRaises(srpauth.SRPAuthNoSalt):
- with mock.patch('leap.util.request_helpers.get_content',
- new=mock.create_autospec(get_content)) as \
- content:
+ with mock.patch(
+ 'leap.bitmask.util.request_helpers.get_content',
+ new=mock.create_autospec(get_content)) as content:
content.return_value = ("{}", 0)
self.auth_backend._start_authentication(None,
@@ -298,9 +298,9 @@ class SRPAuthTestCase(unittest.TestCase):
def wrapper(_):
with self.assertRaises(srpauth.SRPAuthNoB):
- with mock.patch('leap.util.request_helpers.get_content',
- new=mock.create_autospec(get_content)) as \
- content:
+ with mock.patch(
+ 'leap.bitmask.util.request_helpers.get_content',
+ new=mock.create_autospec(get_content)) as content:
content.return_value = ('{"salt": ""}', 0)
self.auth_backend._start_authentication(None,
@@ -317,7 +317,7 @@ class SRPAuthTestCase(unittest.TestCase):
test_B = "67890"
def wrapper(_):
- with mock.patch('leap.util.request_helpers.get_content',
+ with mock.patch('leap.bitmask.util.request_helpers.get_content',
new=mock.create_autospec(get_content)) as \
content:
content.return_value = ('{"salt":"%s", "B":"%s"}' % (test_salt,
@@ -395,7 +395,7 @@ class SRPAuthTestCase(unittest.TestCase):
d = self._prepare_auth_challenge()
def wrapper(salt_B):
- with mock.patch('leap.util.request_helpers.get_content',
+ with mock.patch('leap.bitmask.util.request_helpers.get_content',
new=mock.create_autospec(get_content)) as \
content:
content.return_value = ("{", 0)
@@ -421,7 +421,7 @@ class SRPAuthTestCase(unittest.TestCase):
return_value=res)
def wrapper(salt_B):
- with mock.patch('leap.util.request_helpers.get_content',
+ with mock.patch('leap.bitmask.util.request_helpers.get_content',
new=mock.create_autospec(get_content)) as \
content:
content.return_value = ("", 0)
@@ -445,7 +445,7 @@ class SRPAuthTestCase(unittest.TestCase):
return_value=res)
def wrapper(salt_B):
- with mock.patch('leap.util.request_helpers.get_content',
+ with mock.patch('leap.bitmask.util.request_helpers.get_content',
new=mock.create_autospec(get_content)) as \
content:
content.return_value = ("[]", 0)
@@ -469,7 +469,7 @@ class SRPAuthTestCase(unittest.TestCase):
return_value=res)
def wrapper(salt_B):
- with mock.patch('leap.util.request_helpers.get_content',
+ with mock.patch('leap.bitmask.util.request_helpers.get_content',
new=mock.create_autospec(get_content)) as \
content:
content.return_value = ("{}", 0)
diff --git a/src/leap/bitmask/gui/loggerwindow.py b/src/leap/bitmask/gui/loggerwindow.py
index 981bf65d..9b4ba55d 100644
--- a/src/leap/bitmask/gui/loggerwindow.py
+++ b/src/leap/bitmask/gui/loggerwindow.py
@@ -56,6 +56,10 @@ class LoggerWindow(QtGui.QDialog):
self.ui.btnWarning.toggled.connect(self._load_history),
self.ui.btnError.toggled.connect(self._load_history),
self.ui.btnCritical.toggled.connect(self._load_history)
+ self.ui.leFilterBy.textEdited.connect(self._filter_by)
+ self.ui.cbCaseInsensitive.stateChanged.connect(self._load_history)
+
+ self._current_filter = ""
# Load logging history and connect logger with the widget
self._logging_handler = handler
@@ -95,7 +99,14 @@ class LoggerWindow(QtGui.QDialog):
close_tag = "</td></tr>"
message = open_tag + message + close_tag
- self.ui.txtLogHistory.append(message)
+ filter_by = self._current_filter
+ msg = message
+ if self.ui.cbCaseInsensitive.isChecked():
+ msg = msg.upper()
+ filter_by = filter_by.upper()
+
+ if msg.find(filter_by) != -1:
+ self.ui.txtLogHistory.append(message)
def _load_history(self):
"""
@@ -120,6 +131,16 @@ class LoggerWindow(QtGui.QDialog):
logging.CRITICAL: self.ui.btnCritical.isChecked()
}
+ def _filter_by(self, text):
+ """
+ Sets the text to use for filtering logs in the log window.
+
+ :param text: the text to compare with the logs when filtering.
+ :type text: str
+ """
+ self._current_filter = text
+ self._load_history()
+
def _save_log_to_file(self):
"""
Lets the user save the current log to a file
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index aa4baf56..b624988f 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -60,6 +60,7 @@ from leap.bitmask.services.eip.vpnlaunchers import EIPNoTunKextLoaded
from leap.bitmask.util import __version__ as VERSION
from leap.bitmask.util.keyring_helpers import has_keyring
+from leap.bitmask.util.leap_log_handler import LeapLogHandler
from leap.bitmask.services.mail.smtpconfig import SMTPConfig
@@ -359,7 +360,6 @@ class MainWindow(QtGui.QMainWindow):
:return: a logging handler or None
:rtype: LeapLogHandler or None
"""
- from leap.util.leap_log_handler import LeapLogHandler
leap_logger = logging.getLogger('leap')
for h in leap_logger.handlers:
if isinstance(h, LeapLogHandler):
@@ -380,6 +380,7 @@ class MainWindow(QtGui.QMainWindow):
leap_log_handler = self._get_leap_logging_handler()
if leap_log_handler is None:
logger.error('Leap logger handler not found')
+ return
else:
self._logger_window = LoggerWindow(handler=leap_log_handler)
self._logger_window.setVisible(
diff --git a/src/leap/bitmask/gui/statuspanel.py b/src/leap/bitmask/gui/statuspanel.py
index 8f5427ad..eb731927 100644
--- a/src/leap/bitmask/gui/statuspanel.py
+++ b/src/leap/bitmask/gui/statuspanel.py
@@ -421,6 +421,8 @@ class StatusPanelWidget(QtGui.QWidget):
self.set_eip_status(self.tr("Waiting to start..."))
elif status == "ASSIGN_IP":
self.set_eip_status(self.tr("Assigning IP"))
+ elif status == "RECONNECTING":
+ self.set_eip_status(self.tr("Reconnecting..."))
elif status == "ALREADYRUNNING":
# Put the following calls in Qt's event queue, otherwise
# the UI won't update properly
diff --git a/src/leap/bitmask/gui/twisted_main.py b/src/leap/bitmask/gui/twisted_main.py
index c7add3ee..e11af7bd 100644
--- a/src/leap/bitmask/gui/twisted_main.py
+++ b/src/leap/bitmask/gui/twisted_main.py
@@ -53,8 +53,8 @@ def quit(app):
:type app: QtCore.QApplication
"""
from twisted.internet import reactor
- logger.debug('stopping twisted reactor')
+ logger.debug('Stopping twisted reactor')
try:
- reactor.stop()
+ reactor.callLater(0, reactor.stop)
except error.ReactorNotRunning:
- logger.debug('reactor not running')
+ logger.debug('Reactor not running')
diff --git a/src/leap/bitmask/gui/ui/loggerwindow.ui b/src/leap/bitmask/gui/ui/loggerwindow.ui
index b08428a9..3de786f7 100644
--- a/src/leap/bitmask/gui/ui/loggerwindow.ui
+++ b/src/leap/bitmask/gui/ui/loggerwindow.ui
@@ -14,14 +14,34 @@
<string>Logs</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/mainwindow.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="2" column="0" colspan="2">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Filter by:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="leFilterBy"/>
+ </item>
+ <item row="2" column="2">
+ <widget class="QCheckBox" name="cbCaseInsensitive">
+ <property name="text">
+ <string>Case Insensitive</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="3">
<widget class="QTextBrowser" name="txtLogHistory"/>
</item>
- <item row="0" column="0" colspan="2">
+ <item row="0" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="btnDebug">
@@ -29,7 +49,7 @@
<string>Debug</string>
</property>
<property name="icon">
- <iconset resource="../../../../data/resources/loggerwindow.qrc">
+ <iconset resource="../../../../../data/resources/loggerwindow.qrc">
<normaloff>:/images/oxygen-icons/script-error.png</normaloff>:/images/oxygen-icons/script-error.png</iconset>
</property>
<property name="checkable">
@@ -49,7 +69,7 @@
<string>Info</string>
</property>
<property name="icon">
- <iconset resource="../../../../data/resources/loggerwindow.qrc">
+ <iconset resource="../../../../../data/resources/loggerwindow.qrc">
<normaloff>:/images/oxygen-icons/dialog-information.png</normaloff>:/images/oxygen-icons/dialog-information.png</iconset>
</property>
<property name="checkable">
@@ -69,7 +89,7 @@
<string>Warning</string>
</property>
<property name="icon">
- <iconset resource="../../../../data/resources/loggerwindow.qrc">
+ <iconset resource="../../../../../data/resources/loggerwindow.qrc">
<normaloff>:/images/oxygen-icons/dialog-warning.png</normaloff>:/images/oxygen-icons/dialog-warning.png</iconset>
</property>
<property name="checkable">
@@ -89,7 +109,7 @@
<string>Error</string>
</property>
<property name="icon">
- <iconset resource="../../../../data/resources/loggerwindow.qrc">
+ <iconset resource="../../../../../data/resources/loggerwindow.qrc">
<normaloff>:/images/oxygen-icons/dialog-error.png</normaloff>:/images/oxygen-icons/dialog-error.png</iconset>
</property>
<property name="checkable">
@@ -109,7 +129,7 @@
<string>Critical</string>
</property>
<property name="icon">
- <iconset resource="../../../../data/resources/loggerwindow.qrc">
+ <iconset resource="../../../../../data/resources/loggerwindow.qrc">
<normaloff>:/images/oxygen-icons/edit-bomb.png</normaloff>:/images/oxygen-icons/edit-bomb.png</iconset>
</property>
<property name="checkable">
@@ -129,7 +149,7 @@
<string>Save to file</string>
</property>
<property name="icon">
- <iconset resource="../../../../data/resources/loggerwindow.qrc">
+ <iconset resource="../../../../../data/resources/loggerwindow.qrc">
<normaloff>:/images/oxygen-icons/document-save-as.png</normaloff>:/images/oxygen-icons/document-save-as.png</iconset>
</property>
</widget>
@@ -148,8 +168,8 @@
<tabstop>txtLogHistory</tabstop>
</tabstops>
<resources>
- <include location="../../../../data/resources/loggerwindow.qrc"/>
- <include location="../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/loggerwindow.qrc"/>
+ <include location="../../../../../data/resources/mainwindow.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/mainwindow.ui b/src/leap/bitmask/gui/ui/mainwindow.ui
index ecd3cbe9..9c4e6ff0 100644
--- a/src/leap/bitmask/gui/ui/mainwindow.ui
+++ b/src/leap/bitmask/gui/ui/mainwindow.ui
@@ -14,7 +14,7 @@
<string>Bitmask</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/mainwindow.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<property name="inputMethodHints">
@@ -166,7 +166,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/mask-launcher.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/mask-launcher.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -308,8 +308,9 @@
</action>
</widget>
<resources>
+ <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/locale.qrc"/>
<include location="../../../../data/resources/mainwindow.qrc"/>
- <include location="../../../../data/resources/locale.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/statuspanel.ui b/src/leap/bitmask/gui/ui/statuspanel.ui
index 3482ac7c..39992e1a 100644
--- a/src/leap/bitmask/gui/ui/statuspanel.ui
+++ b/src/leap/bitmask/gui/ui/statuspanel.ui
@@ -114,7 +114,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/icons.qrc">:/images/light/64/network-eip-down.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/light/64/network-eip-down.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -135,7 +135,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/icons.qrc">:/images/light/16/down-arrow.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/light/16/down-arrow.png</pixmap>
</property>
</widget>
</item>
@@ -192,7 +192,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/icons.qrc">:/images/light/16/up-arrow.png</pixmap>
+ <pixmap resource="../../../../../data/resources/icons.qrc">:/images/light/16/up-arrow.png</pixmap>
</property>
</widget>
</item>
@@ -283,7 +283,7 @@
</layout>
</widget>
<resources>
- <include location="../../../../data/resources/icons.qrc"/>
+ <include location="../../../../../data/resources/icons.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/gui/ui/wizard.ui b/src/leap/bitmask/gui/ui/wizard.ui
index 5e0108dc..3b8f1215 100644
--- a/src/leap/bitmask/gui/ui/wizard.ui
+++ b/src/leap/bitmask/gui/ui/wizard.ui
@@ -7,14 +7,26 @@
<x>0</x>
<y>0</y>
<width>536</width>
- <height>452</height>
+ <height>490</height>
</rect>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>536</width>
+ <height>490</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>536</width>
+ <height>490</height>
+ </size>
+ </property>
<property name="windowTitle">
<string>Bitmask first run</string>
</property>
<property name="windowIcon">
- <iconset resource="../../../../data/resources/mainwindow.qrc">
+ <iconset resource="../../../../../data/resources/mainwindow.qrc">
<normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>
</property>
<property name="modal">
@@ -193,7 +205,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
</property>
</widget>
</item>
@@ -215,7 +227,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
</property>
</widget>
</item>
@@ -237,7 +249,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
</property>
</widget>
</item>
@@ -486,7 +498,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
</property>
</widget>
</item>
@@ -508,7 +520,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
</property>
</widget>
</item>
@@ -551,7 +563,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Emblem-question.png</pixmap>
</property>
</widget>
</item>
@@ -771,7 +783,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/mask-icon.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/mask-icon.png</pixmap>
</property>
</widget>
</item>
@@ -787,7 +799,7 @@
<string/>
</property>
<property name="pixmap">
- <pixmap resource="../../../../data/resources/mainwindow.qrc">:/images/Globe.png</pixmap>
+ <pixmap resource="../../../../../data/resources/mainwindow.qrc">:/images/Globe.png</pixmap>
</property>
</widget>
</item>
@@ -839,8 +851,8 @@
<tabstop>btnCheck</tabstop>
</tabstops>
<resources>
- <include location="../../../../data/resources/mainwindow.qrc"/>
- <include location="../../../../data/resources/locale.qrc"/>
+ <include location="../../../../../data/resources/mainwindow.qrc"/>
+ <include location="../../../../../data/resources/locale.qrc"/>
</resources>
<connections/>
</ui>
diff --git a/src/leap/bitmask/services/eip/tests/test_providerbootstrapper.py b/src/leap/bitmask/services/eip/tests/test_providerbootstrapper.py
index 96ab53ce..93467d3a 100644
--- a/src/leap/bitmask/services/eip/tests/test_providerbootstrapper.py
+++ b/src/leap/bitmask/services/eip/tests/test_providerbootstrapper.py
@@ -421,8 +421,9 @@ class ProviderBootstrapperActiveTest(unittest.TestCase):
self.pb._download_provider_info()
self.assertTrue(ProviderConfig.save.called)
- @mock.patch('leap.config.providerconfig.ProviderConfig.get_ca_cert_path',
- lambda x: where('cacert.pem'))
+ @mock.patch(
+ 'leap.bitmask.config.providerconfig.ProviderConfig.get_ca_cert_path',
+ lambda x: where('cacert.pem'))
def test_download_provider_info_not_modified(self):
self._setup_provider_config_with("1", tempfile.mkdtemp())
self._setup_providerbootstrapper(True)
@@ -439,8 +440,9 @@ class ProviderBootstrapperActiveTest(unittest.TestCase):
# config, because it's new enough
self.assertFalse(ProviderConfig.save.called)
- @mock.patch('leap.config.providerconfig.ProviderConfig.get_ca_cert_path',
- lambda x: where('cacert.pem'))
+ @mock.patch(
+ 'leap.bitmask.config.providerconfig.ProviderConfig.get_ca_cert_path',
+ lambda x: where('cacert.pem'))
def test_download_provider_info_modified(self):
self._setup_provider_config_with("1", tempfile.mkdtemp())
self._setup_providerbootstrapper(True)
@@ -456,8 +458,9 @@ class ProviderBootstrapperActiveTest(unittest.TestCase):
self.assertTrue(ProviderConfig.load.called)
self.assertTrue(ProviderConfig.save.called)
- @mock.patch('leap.config.providerconfig.ProviderConfig.get_ca_cert_path',
- lambda x: where('cacert.pem'))
+ @mock.patch(
+ 'leap.bitmask.config.providerconfig.ProviderConfig.get_ca_cert_path',
+ lambda x: where('cacert.pem'))
def test_download_provider_info_unsupported_api_raises(self):
self._setup_provider_config_with("9999999", tempfile.mkdtemp())
self._setup_providerbootstrapper(False)
@@ -469,8 +472,9 @@ class ProviderBootstrapperActiveTest(unittest.TestCase):
with self.assertRaises(UnsupportedProviderAPI):
self.pb._download_provider_info()
- @mock.patch('leap.config.providerconfig.ProviderConfig.get_ca_cert_path',
- lambda x: where('cacert.pem'))
+ @mock.patch(
+ 'leap.bitmask.config.providerconfig.ProviderConfig.get_ca_cert_path',
+ lambda x: where('cacert.pem'))
def test_download_provider_info_unsupported_api(self):
self._setup_provider_config_with(SupportedAPIs.SUPPORTED_APIS[0],
tempfile.mkdtemp())
@@ -482,10 +486,12 @@ class ProviderBootstrapperActiveTest(unittest.TestCase):
return_value="https://localhost:%s" % (self.https_port,)):
self.pb._download_provider_info()
- @mock.patch('leap.config.providerconfig.ProviderConfig.get_api_uri',
- lambda x: 'api.uri')
- @mock.patch('leap.config.providerconfig.ProviderConfig.get_ca_cert_path',
- lambda x: '/cert/path')
+ @mock.patch(
+ 'leap.bitmask.config.providerconfig.ProviderConfig.get_api_uri',
+ lambda x: 'api.uri')
+ @mock.patch(
+ 'leap.bitmask.config.providerconfig.ProviderConfig.get_ca_cert_path',
+ lambda x: '/cert/path')
def test_check_api_certificate_skips(self):
self.pb._provider_config = ProviderConfig()
self.pb._session.get = mock.MagicMock(return_value=Response())