Mercurial > public > mercurial-scm > python-hglib
view tests/test-hglib.py @ 176:3f854e3bcdd1 2.2
client: raise KeyError from __getitem__ (BC)
object.__getitem__ is supposed to raise either IndexError or KeyError
(depending on whether the thing is a sequence or a mapping). Before,
we would raise ValueError because that's what the context constructor
raises.
I choose to raise KeyError because IndexError felt a bit too limiting.
This does sacrifice some magic with for loops handling IndexError.
However, iteration of this object should be handled by a custom
__iter__, so I don't think this is a problem.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 06 Jul 2016 14:14:22 -0700 |
parents | e6589149b2c8 |
children |
line wrap: on
line source
from tests import common import hglib class test_hglib(common.basetest): def setUp(self): pass def test_close_fds(self): """A weird Python bug that has something to do to inherited file descriptors, see http://bugs.python.org/issue12786 """ common.basetest.setUp(self) client2 = hglib.open() self.client.close() def test_open_nonexistent(self): # setup stuff necessary for basetest.tearDown() self.clients = [] self._oldopen = hglib.client.hgclient.open try: self.clients.append(hglib.open('inexistent')) # hg 3.5 can't report error (fixed by 7332bf4ae959) #self.fail('ServerError not raised') except hglib.error.ServerError as inst: self.assertTrue('inexistent' in str(inst))