comparison tests/test-context.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
comparison
equal deleted inserted replaced
175:c16e2087660f 176:3f854e3bcdd1
14 self.append('b', 'b') 14 self.append('b', 'b')
15 rev0, node0 = self.client.commit(b('first'), addremove=True) 15 rev0, node0 = self.client.commit(b('first'), addremove=True)
16 16
17 self.append('c', 'c') 17 self.append('c', 'c')
18 rev1, node1 = self.client.commit(b('second'), addremove=True) 18 rev1, node1 = self.client.commit(b('second'), addremove=True)
19
20 self.assertRaises(KeyError, self.client.__getitem__, 'doesnotexist')
19 21
20 ctx = self.client[node0] 22 ctx = self.client[node0]
21 23
22 self.assertEquals(ctx.description(), b('first')) 24 self.assertEquals(ctx.description(), b('first'))
23 self.assertEquals(str(ctx), node0[:12].decode('latin-1')) 25 self.assertEquals(str(ctx), node0[:12].decode('latin-1'))