view tests/test-paths.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
line wrap: on
line source

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

class test_paths(common.basetest):
    def test_basic(self):
        f = open('.hg/hgrc', 'a')
        f.write('[paths]\nfoo = bar\n')
        f.close()

        # hgrc isn't watched for changes yet, have to reopen
        self.client = hglib.open()
        paths = self.client.paths()
        self.assertEquals(len(paths), 1)
        self.assertEquals(paths[b('foo')],
                          os.path.abspath('bar').encode('latin-1'))
        self.assertEquals(self.client.paths(b('foo')),
                          os.path.abspath('bar').encode('latin-1'))