Merge lp:~dobey/ubuntu-sso-client/ssl-force-load into lp:ubuntu-sso-client

Proposed by dobey
Status: Merged
Approved by: dobey
Approved revision: 1035
Merged at revision: 1035
Proposed branch: lp:~dobey/ubuntu-sso-client/ssl-force-load
Merge into: lp:ubuntu-sso-client
Diff against target: 47 lines (+14/-1)
2 files modified
ubuntu_sso/utils/webclient/qtnetwork.py (+3/-0)
ubuntu_sso/utils/webclient/tests/test_qtnetwork.py (+11/-1)
To merge this branch: bzr merge lp:~dobey/ubuntu-sso-client/ssl-force-load
Reviewer Review Type Date Requested Status
Alejandro J. Cura (community) Approve
Mike McCracken (community) Approve
Review via email: mp+192407@code.launchpad.net

Commit message

Force loading of the system certificates in Qt, to avoid breaking certificate
checks on non-Ubuntu URLs.

To post a comment you must log in.
Revision history for this message
Mike McCracken (mikemc) wrote :

Works for me on ubuntu saucy and still works for me on OS X.

review: Approve
Revision history for this message
Alejandro J. Cura (alecu) wrote :

Tested irl on my saucy box, and the captcha issue is fixed.

review: Approve
Revision history for this message
Ubuntu One Auto Pilot (otto-pilot) wrote :
Download full text (61.1 KiB)

The attempt to merge lp:~dobey/ubuntu-sso-client/ssl-force-load into lp:ubuntu-sso-client failed. Below is the output from the failed tests.

*** Running QT test suite for ubuntu_sso ***
running build
Compiled data/qt/setup_account.ui into ubuntu_sso/qt/ui/setup_account_ui.py
Compiled data/qt/forgotten_password.ui into ubuntu_sso/qt/ui/forgotten_password_ui.py
Compiled data/qt/success_message.ui into ubuntu_sso/qt/ui/success_message_ui.py
Compiled data/qt/error_message.ui into ubuntu_sso/qt/ui/error_message_ui.py
Compiled data/qt/current_user_sign_in.ui into ubuntu_sso/qt/ui/current_user_sign_in_ui.py
Compiled data/qt/proxy_credentials_dialog.ui into ubuntu_sso/qt/ui/proxy_credentials_dialog_ui.py
Compiled data/qt/network_detection.ui into ubuntu_sso/qt/ui/network_detection_ui.py
Compiled data/qt/ssl_dialog.ui into ubuntu_sso/qt/ui/ssl_dialog_ui.py
compiled data/qt/resources.qrc into ubuntu_sso/qt/ui/resources_rc.py
Compiled data/qt/loadingoverlay.ui into ubuntu_sso/qt/ui/loadingoverlay_ui.py
Compiled data/qt/email_verification.ui into ubuntu_sso/qt/ui/email_verification_ui.py
Compiled data/qt/reset_password.ui into ubuntu_sso/qt/ui/reset_password_ui.py
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/ubuntu_sso
copying ubuntu_sso/constants.py -> build/lib.linux-x86_64-2.7/ubuntu_sso
copying ubuntu_sso/logger.py -> build/lib.linux-x86_64-2.7/ubuntu_sso
copying ubuntu_sso/__init__.py -> build/lib.linux-x86_64-2.7/ubuntu_sso
copying ubuntu_sso/account.py -> build/lib.linux-x86_64-2.7/ubuntu_sso
copying ubuntu_sso/credentials.py -> build/lib.linux-x86_64-2.7/ubuntu_sso
creating build/lib.linux-x86_64-2.7/ubuntu_sso/tests
copying ubuntu_sso/tests/linux.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/tests
copying ubuntu_sso/tests/test_credentials.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/tests
copying ubuntu_sso/tests/test_account.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/tests
copying ubuntu_sso/tests/__init__.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/tests
creating build/lib.linux-x86_64-2.7/ubuntu_sso/keyring
copying ubuntu_sso/keyring/linux.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/keyring
copying ubuntu_sso/keyring/pykeyring.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/keyring
copying ubuntu_sso/keyring/__init__.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/keyring
creating build/lib.linux-x86_64-2.7/ubuntu_sso/keyring/tests
copying ubuntu_sso/keyring/tests/test_linux.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/keyring/tests
copying ubuntu_sso/keyring/tests/test_pykeyring.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/keyring/tests
copying ubuntu_sso/keyring/tests/test_common.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/keyring/tests
copying ubuntu_sso/keyring/tests/__init__.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/keyring/tests
creating build/lib.linux-x86_64-2.7/ubuntu_sso/main
copying ubuntu_sso/main/linux.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/main
copying ubuntu_sso/main/windows.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/main
copying ubuntu_sso/main/qt.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/main
copying ubuntu_sso/main/glib.py -> build/lib.linux-x86_64-2.7/ubuntu_sso/main...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ubuntu_sso/utils/webclient/qtnetwork.py'
2--- ubuntu_sso/utils/webclient/qtnetwork.py 2013-05-08 18:38:36 +0000
3+++ ubuntu_sso/utils/webclient/qtnetwork.py 2013-10-23 21:42:57 +0000
4@@ -50,6 +50,7 @@
5 QNetworkRequest,
6 QSslCertificate,
7 QSslConfiguration,
8+ QSslSocket,
9 )
10 from twisted.internet import defer
11
12@@ -106,6 +107,8 @@
13 self.proxy_retry = False
14 self.setup_proxy()
15
16+ # Force Qt to load the system certificates
17+ QSslSocket.setDefaultCaCertificates(QSslSocket.systemCaCertificates())
18 # Apply our local certificates as the SSL configuration to be used
19 # for all QNetworkRequest calls.
20 self.ssl_config = QSslConfiguration.defaultConfiguration()
21
22=== modified file 'ubuntu_sso/utils/webclient/tests/test_qtnetwork.py'
23--- ubuntu_sso/utils/webclient/tests/test_qtnetwork.py 2013-05-08 18:38:36 +0000
24+++ ubuntu_sso/utils/webclient/tests/test_qtnetwork.py 2013-10-23 21:42:57 +0000
25@@ -28,7 +28,10 @@
26 # files in the program, then also delete it here.
27 """Specific tests for the qt implementation."""
28
29-from PyQt4.QtNetwork import QSslError
30+from PyQt4.QtNetwork import (
31+ QSslConfiguration,
32+ QSslError,
33+)
34 from twisted.internet import defer
35 from ubuntuone.devtools.testcases import TestCase
36
37@@ -139,3 +142,10 @@
38 errors = [QSslError()]
39 client._handle_ssl_errors(reply, errors)
40 self.assertTrue(type(result[0]), unicode)
41+
42+ def test_nonempty_cert_list(self):
43+ """Test the Qt CA list has more than our included certs."""
44+ qtnetwork.WebClient()
45+ ssl_config = QSslConfiguration.defaultConfiguration()
46+ ca_certs = ssl_config.caCertificates()
47+ self.assertTrue(len(ca_certs) > 3)

Subscribers

People subscribed via source and target branches