Example #1
0
    def _try_import_backends(self) -> _BackendImports:
        """Check whether backends can be imported and return BackendImports."""
        # pylint: disable=unused-import
        results = _BackendImports()

        try:
            from PyQt5 import QtWebKit
            from PyQt5 import QtWebKitWidgets
        except ImportError as e:
            results.webkit_available = False
            results.webkit_error = str(e)
        else:
            if qtutils.is_new_qtwebkit():
                results.webkit_available = True
            else:
                results.webkit_available = False
                results.webkit_error = "Unsupported legacy QtWebKit found"

        try:
            from PyQt5 import QtWebEngineWidgets
        except ImportError as e:
            results.webengine_available = False
            results.webengine_error = str(e)
        else:
            results.webengine_available = True

        assert results.webkit_available is not None
        assert results.webengine_available is not None
        if not results.webkit_available:
            assert results.webkit_error is not None
        if not results.webengine_available:
            assert results.webengine_error is not None

        return results
Example #2
0
def _try_import_backends():
    """Check whether backends can be imported and return BackendImports."""
    # pylint: disable=unused-variable
    results = BackendImports()

    try:
        from PyQt5 import QtWebKit
        from PyQt5 import QtWebKitWidgets
    except ImportError as e:
        results.webkit_available = False
        results.webkit_error = str(e)
    else:
        if qtutils.is_new_qtwebkit():
            results.webkit_available = True
        else:
            results.webkit_available = False
            results.webkit_error = "Unsupported legacy QtWebKit found"

    try:
        from PyQt5 import QtWebEngineWidgets
    except ImportError as e:
        results.webengine_available = False
        results.webengine_error = str(e)
    else:
        results.webengine_available = True

    assert results.webkit_available is not None
    assert results.webengine_available is not None
    if not results.webkit_available:
        assert results.webkit_error is not None
    if not results.webengine_available:
        assert results.webengine_error is not None

    return results
Example #3
0
    def _try_import_backends(self) -> _BackendImports:
        """Check whether backends can be imported and return BackendImports."""
        # pylint: disable=unused-import
        results = _BackendImports()

        try:
            from PyQt5 import QtWebKit
            from PyQt5.QtWebKit import qWebKitVersion
            from PyQt5 import QtWebKitWidgets
        except (ImportError, ValueError) as e:
            results.webkit_error = str(e)
        else:
            if not qtutils.is_new_qtwebkit():
                results.webkit_error = "Unsupported legacy QtWebKit found"

        try:
            from PyQt5 import QtWebEngineWidgets
        except (ImportError, ValueError) as e:
            results.webengine_error = str(e)

        return results
Example #4
0
def get_backend(args):
    """Find out what backend to use based on available libraries."""
    try:
        import PyQt5.QtWebKit  # pylint: disable=unused-variable
    except ImportError:
        webkit_available = False
    else:
        webkit_available = qtutils.is_new_qtwebkit()

    str_to_backend = {
        'webkit': usertypes.Backend.QtWebKit,
        'webengine': usertypes.Backend.QtWebEngine,
    }

    if args.backend is not None:
        return str_to_backend[args.backend]
    elif val.backend != 'auto':
        return str_to_backend[val.backend]
    elif webkit_available:
        return usertypes.Backend.QtWebKit
    else:
        return usertypes.Backend.QtWebEngine
Example #5
0
def test_is_new_qtwebkit(monkeypatch, version, is_new):
    monkeypatch.setattr(qtutils, 'qWebKitVersion', lambda: version)
    assert qtutils.is_new_qtwebkit() == is_new
Example #6
0
def check_new_webkit(backend):
    """Make sure we use QtWebEngine or a new QtWebKit."""
    from qutebrowser.utils import usertypes, qtutils
    if backend == usertypes.Backend.QtWebKit and not qtutils.is_new_qtwebkit():
        _die("qutebrowser does not support legacy QtWebKit versions anymore, "
             "see the installation docs for details.")
def test_is_new_qtwebkit(monkeypatch, version, is_new):
    monkeypatch.setattr(qtutils, 'qWebKitVersion', lambda: version)
    assert qtutils.is_new_qtwebkit() == is_new
Example #8
0
def check_new_webkit(backend):
    """Make sure we use QtWebEngine or a new QtWebKit."""
    from qutebrowser.utils import usertypes, qtutils
    if backend == usertypes.Backend.QtWebKit and not qtutils.is_new_qtwebkit():
        _die("qutebrowser does not support legacy QtWebKit versions anymore, "
             "see the installation docs for details.")