diff options
Diffstat (limited to 'qutebrowser/browser/webkit/certificateerror.py')
-rw-r--r-- | qutebrowser/browser/webkit/certificateerror.py | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/qutebrowser/browser/webkit/certificateerror.py b/qutebrowser/browser/webkit/certificateerror.py index 38166ec35..68c0de775 100644 --- a/qutebrowser/browser/webkit/certificateerror.py +++ b/qutebrowser/browser/webkit/certificateerror.py @@ -17,8 +17,9 @@ # You should have received a copy of the GNU General Public License # along with qutebrowser. If not, see <https://www.gnu.org/licenses/>. -"""Wrapper over a QSslError.""" +"""A wrapper over a list of QSslErrors.""" +from typing import Sequence from PyQt5.QtNetwork import QSslError @@ -27,21 +28,27 @@ from qutebrowser.utils import usertypes, utils, debug class CertificateErrorWrapper(usertypes.AbstractCertificateErrorWrapper): - """A wrapper over a QSslError.""" + """A wrapper over a list of QSslErrors.""" - def __str__(self): - return self._error.errorString() + def __init__(self, errors: Sequence[QSslError]) -> None: + self._errors = tuple(errors) # needs to be hashable - def __repr__(self): + def __str__(self) -> str: + return '\n'.join('- ' + err.errorString() for err in self._errors) + + def __repr__(self) -> str: return utils.get_repr( - self, error=debug.qenum_key(QSslError, self._error.error()), + self, + errors=[debug.qenum_key(QSslError, err.error()) for err in self._errors], string=str(self)) - def __hash__(self): - return hash(self._error) + def __hash__(self) -> int: + return hash(self._errors) - def __eq__(self, other): - return self._error == other._error + def __eq__(self, other: object) -> bool: + if not isinstance(other, CertificateErrorWrapper): + return NotImplemented + return self._errors == other._errors - def is_overridable(self): + def is_overridable(self) -> bool: return True |