summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/webkit/certificateerror.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/webkit/certificateerror.py')
-rw-r--r--qutebrowser/browser/webkit/certificateerror.py29
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