tests: Avoid accessing Qt statics at import time
With a Qt 6.7 developer build, the tests fail with:
ASSERT failure in QtGlobalStatic::ApplicationHolder<QAS>::PlainType*
QtGlobalStatic::ApplicationHolder<QAS>::pointer() [with QAS =
{anonymous}::Q_QAS_qtlsbLoader; PlainType = QFactoryLoader]: "The
application static was used without a QCoreApplication instance", file
.../qtbase/src/corelib/kernel/qapplicationstatic.h, line 54
Fatal Python error: Aborted
[...]
Current thread 0x00007c18bb3f3740 (most recent call first):
File ".../tests/unit/browser/webkit/test_certificateerror.py", line 23 in <module>
See https://codereview.qt-project.org/c/qt/qtbase/+/495239
This commit is contained in:
parent
01f4807eaf
commit
ad3ba9fe84
|
|
@ -18,15 +18,15 @@ class FakeError:
|
|||
return self.msg
|
||||
|
||||
|
||||
@pytest.mark.parametrize('errors, expected', [
|
||||
@pytest.mark.parametrize('error_factories, expected', [
|
||||
(
|
||||
[QSslError(QSslError.SslError.UnableToGetIssuerCertificate)],
|
||||
[lambda: QSslError(QSslError.SslError.UnableToGetIssuerCertificate)],
|
||||
['<p>The issuer certificate could not be found</p>'],
|
||||
),
|
||||
(
|
||||
[
|
||||
QSslError(QSslError.SslError.UnableToGetIssuerCertificate),
|
||||
QSslError(QSslError.SslError.UnableToDecryptCertificateSignature),
|
||||
lambda: QSslError(QSslError.SslError.UnableToGetIssuerCertificate),
|
||||
lambda: QSslError(QSslError.SslError.UnableToDecryptCertificateSignature),
|
||||
],
|
||||
[
|
||||
'<ul>',
|
||||
|
|
@ -37,13 +37,13 @@ class FakeError:
|
|||
),
|
||||
|
||||
(
|
||||
[FakeError('Escaping test: <>')],
|
||||
[lambda: FakeError('Escaping test: <>')],
|
||||
['<p>Escaping test: <></p>'],
|
||||
),
|
||||
(
|
||||
[
|
||||
FakeError('Escaping test 1: <>'),
|
||||
FakeError('Escaping test 2: <>'),
|
||||
lambda: FakeError('Escaping test 1: <>'),
|
||||
lambda: FakeError('Escaping test 2: <>'),
|
||||
],
|
||||
[
|
||||
'<ul>',
|
||||
|
|
@ -53,8 +53,9 @@ class FakeError:
|
|||
],
|
||||
),
|
||||
])
|
||||
def test_html(stubs, errors, expected):
|
||||
def test_html(stubs, error_factories, expected):
|
||||
reply = stubs.FakeNetworkReply(url=QUrl("https://example.com"))
|
||||
errors = [factory() for factory in error_factories]
|
||||
wrapper = certificateerror.CertificateErrorWrapper(reply=reply, errors=errors)
|
||||
lines = [line.strip() for line in wrapper.html().splitlines() if line.strip()]
|
||||
assert lines == expected
|
||||
|
|
|
|||
|
|
@ -1874,24 +1874,24 @@ class TestProxy:
|
|||
def klass(self):
|
||||
return configtypes.Proxy
|
||||
|
||||
@pytest.mark.parametrize('val, expected', [
|
||||
('system', configtypes.SYSTEM_PROXY),
|
||||
('none', QNetworkProxy(QNetworkProxy.ProxyType.NoProxy)),
|
||||
@pytest.mark.parametrize('val, expected_factory', [
|
||||
('system', lambda: configtypes.SYSTEM_PROXY),
|
||||
('none', lambda: QNetworkProxy(QNetworkProxy.ProxyType.NoProxy)),
|
||||
('socks://example.com/',
|
||||
QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com')),
|
||||
lambda: QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com')),
|
||||
('socks5://foo:bar@example.com:2323',
|
||||
QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com', 2323,
|
||||
'foo', 'bar')),
|
||||
lambda: QNetworkProxy(
|
||||
QNetworkProxy.ProxyType.Socks5Proxy, 'example.com', 2323, 'foo', 'bar')),
|
||||
('pac+http://example.com/proxy.pac',
|
||||
pac.PACFetcher(QUrl('pac+http://example.com/proxy.pac'))),
|
||||
lambda: pac.PACFetcher(QUrl('pac+http://example.com/proxy.pac'))),
|
||||
('pac+file:///tmp/proxy.pac',
|
||||
pac.PACFetcher(QUrl('pac+file:///tmp/proxy.pac'))),
|
||||
lambda: pac.PACFetcher(QUrl('pac+file:///tmp/proxy.pac'))),
|
||||
])
|
||||
def test_to_py_valid(self, klass, val, expected):
|
||||
def test_to_py_valid(self, klass, val, expected_factory):
|
||||
actual = klass().to_py(val)
|
||||
if isinstance(actual, QNetworkProxy):
|
||||
actual = QNetworkProxy(actual)
|
||||
assert actual == expected
|
||||
assert actual == expected_factory()
|
||||
|
||||
@pytest.mark.parametrize('val', [
|
||||
'blah',
|
||||
|
|
|
|||
Loading…
Reference in New Issue