mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
[auth] Added tests for updateNetworkProxy
This commit is contained in:
parent
53a8484981
commit
40b7f7914a
@ -181,6 +181,7 @@ ADD_PYTHON_TEST(PyQgsFileDownloader test_qgsfiledownloader.py)
|
||||
ADD_PYTHON_TEST(PyQgsSettings test_qgssettings.py)
|
||||
ADD_PYTHON_TEST(PyQgsZipUtils test_qgsziputils.py)
|
||||
ADD_PYTHON_TEST(PyQgsSourceSelectProvider test_qgssourceselectprovider.py)
|
||||
ADD_PYTHON_TEST(PyQgsAuthManagerProxy test_authmanager_proxy.py)
|
||||
|
||||
IF (NOT WIN32)
|
||||
ADD_PYTHON_TEST(PyQgsLogger test_qgslogger.py)
|
||||
|
106
tests/src/python/test_authmanager_proxy.py
Normal file
106
tests/src/python/test_authmanager_proxy.py
Normal file
@ -0,0 +1,106 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Tests for auth manager Basic configuration update proxy
|
||||
|
||||
From build dir, run from test directory:
|
||||
LC_ALL=en_US.UTF-8 ctest -R PyQgsAuthManagerProxy -V
|
||||
|
||||
.. note:: This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
"""
|
||||
import os
|
||||
import re
|
||||
import string
|
||||
import sys
|
||||
from functools import partial
|
||||
from shutil import rmtree
|
||||
import tempfile
|
||||
import random
|
||||
|
||||
from qgis.core import QgsAuthManager, QgsAuthMethodConfig, QgsNetworkAccessManager, QgsSettings
|
||||
from qgis.testing import start_app, unittest
|
||||
|
||||
from utilities import unitTestDataPath, waitServer
|
||||
|
||||
__author__ = 'Alessandro Pasotti'
|
||||
__date__ = '27/09/2017'
|
||||
__copyright__ = 'Copyright 2017, The QGIS Project'
|
||||
# This will get replaced with a git SHA1 when you do a git archive
|
||||
__revision__ = '$Format:%H$'
|
||||
|
||||
|
||||
QGIS_AUTH_DB_DIR_PATH = tempfile.mkdtemp()
|
||||
|
||||
os.environ['QGIS_AUTH_DB_DIR_PATH'] = QGIS_AUTH_DB_DIR_PATH
|
||||
|
||||
qgis_app = start_app()
|
||||
|
||||
|
||||
class TestAuthManager(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
"""Run before all tests:
|
||||
Creates an auth configuration"""
|
||||
cls.testdata_path = unitTestDataPath('qgis_server') + '/'
|
||||
# Enable auth
|
||||
# os.environ['QGIS_AUTH_PASSWORD_FILE'] = QGIS_AUTH_PASSWORD_FILE
|
||||
authm = QgsAuthManager.instance()
|
||||
assert (authm.setMasterPassword('masterpassword', True))
|
||||
cls.auth_config = QgsAuthMethodConfig('Basic')
|
||||
cls.auth_config.setName('test_auth_config')
|
||||
cls.username = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(6))
|
||||
cls.password = cls.username[::-1] # reversed
|
||||
cls.auth_config.setConfig('username', cls.username)
|
||||
cls.auth_config.setConfig('password', cls.password)
|
||||
assert (authm.storeAuthenticationConfig(cls.auth_config)[0])
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
"""Run after all tests"""
|
||||
rmtree(QGIS_AUTH_DB_DIR_PATH)
|
||||
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
pass
|
||||
|
||||
def tearDown(self):
|
||||
"""Run after each test."""
|
||||
pass
|
||||
|
||||
def testProxyIsUpdated(self):
|
||||
"""
|
||||
Test that proxy is updated
|
||||
"""
|
||||
authm = QgsAuthManager.instance()
|
||||
nam = QgsNetworkAccessManager.instance()
|
||||
proxy = nam.proxy()
|
||||
self.assertEqual(proxy.password(), '')
|
||||
self.assertEqual(proxy.user(), '')
|
||||
self.assertTrue(authm.updateNetworkProxy(proxy, self.auth_config.id()))
|
||||
self.assertEqual(proxy.user(), self.username)
|
||||
self.assertEqual(proxy.password(), self.password)
|
||||
|
||||
def testProxyIsUpdatedByUserSettings(self):
|
||||
"""
|
||||
Test that proxy is updated
|
||||
"""
|
||||
nam = QgsNetworkAccessManager.instance()
|
||||
nam.setupDefaultProxyAndCache()
|
||||
proxy = nam.proxy()
|
||||
self.assertEqual(proxy.password(), '')
|
||||
self.assertEqual(proxy.user(), '')
|
||||
settings = QgsSettings()
|
||||
settings.setValue("proxy/authcfg", self.auth_config.id())
|
||||
settings.setValue("proxy/proxyEnabled", True)
|
||||
del(settings)
|
||||
nam.setupDefaultProxyAndCache()
|
||||
proxy = nam.fallbackProxy()
|
||||
self.assertEqual(proxy.password(), self.password)
|
||||
self.assertEqual(proxy.user(), self.username)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user