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))