view tests/test-log.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 c1b966866ed7
children 32e8d51ec16c
line wrap: on
line source

from tests import common
import hglib
from hglib.util import b

class test_log(common.basetest):
    def test_basic(self):
        self.append('a', 'a')
        rev0, node0 = self.client.commit(b('first'), addremove=True)
        self.append('a', 'a')
        rev1, node1 = self.client.commit(b('second'))

        revs = self.client.log()
        revs.reverse()

        self.assertTrue(len(revs) == 2)
        self.assertEquals(revs[1].node, node1)

        self.assertEquals(revs[0], self.client.log(b('0'))[0])
        self.assertEquals(self.client.log(), self.client.log(files=[b('a')]))

        self.assertEquals(self.client.log(), self.client.log(hidden=True))

    # def test_errors(self):
    #     self.assertRaisesRegexp(CommandError, 'abort: unknown revision',
    #                             self.client.log, 'foo')
    #     self.append('a', 'a')
    #     self.client.commit('first', addremove=True)
    #     self.assertRaisesRegexp(CommandError,
    #                             'abort: unknown revision',
    #                             self.client.log, 'bar')