# HG changeset patch # User Gregory Szorc # Date 1522859479 25200 # Node ID dd275372985392196af3f7291b50f6ed8de535a7 # Parent 567bddcb42712c53cd53af9ed46ed8b8ad27586e simplestore: shore up lookup errors When revisions or nodes can't be resolved, we're expected to raise an error.LookupError. When I ported code from revlog.py, I failed to realize that "LookupError" in that module is aliased to error.LookupError. I thought we were using the builtin LookupError instead. This commit switches us to error.LookupError. It also fixes rev() to raise error.LookupError instead of KeyError. Differential Revision: https://phab.mercurial-scm.org/D3092 diff -r 567bddcb4271 -r dd2753729853 tests/simplestorerepo.py --- a/tests/simplestorerepo.py Wed Apr 04 09:57:21 2018 -0700 +++ b/tests/simplestorerepo.py Wed Apr 04 09:31:19 2018 -0700 @@ -152,8 +152,10 @@ def rev(self, node): validatenode(node) - # Will raise KeyError. - self._indexbynode[node] + try: + self._indexbynode[node] + except KeyError: + raise error.LookupError(node, self._indexpath, _('no node')) for rev, entry in self._indexbyrev.items(): if entry[b'node'] == node: @@ -171,11 +173,8 @@ return self.node(node) if len(node) == 20: - try: - self.rev(node) - return node - except LookupError: - pass + self.rev(node) + return node try: rev = int(node) @@ -196,10 +195,10 @@ rawnode = bin(node) self.rev(rawnode) return rawnode - except (TypeError, LookupError): + except TypeError: pass - raise LookupError(node, self._path, _('invalid lookup input')) + raise error.LookupError(node, self._path, _('invalid lookup input')) def linkrev(self, rev): validaterev(rev) @@ -280,8 +279,6 @@ if node == nullid: return b'' - self._indexbynode[node] - rev = self.rev(node) flags = self.flags(rev)