Mercurial > public > mercurial-scm > python-hglib
annotate tests/test-clone.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 | 820d7c1e470a |
rev | line source |
---|---|
93
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
1 import os |
148
c1b966866ed7
hglib: make all imports absolute (issue4520)
Brett Cannon <brett@python.org>
parents:
143
diff
changeset
|
2 from tests import common |
93
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
3 import hglib |
143
4359cabcb0cc
hglib: move string literals in the test code to util.b() (issue4520)
Brett Cannon <brett@python.org>
parents:
93
diff
changeset
|
4 from hglib.util import b |
93
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
5 |
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
6 class test_clone(common.basetest): |
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
7 def test_basic(self): |
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
8 self.append('a', 'a') |
143
4359cabcb0cc
hglib: move string literals in the test code to util.b() (issue4520)
Brett Cannon <brett@python.org>
parents:
93
diff
changeset
|
9 self.client.commit(b('first'), addremove=True) |
4359cabcb0cc
hglib: move string literals in the test code to util.b() (issue4520)
Brett Cannon <brett@python.org>
parents:
93
diff
changeset
|
10 cloned = hglib.clone(b('.'), b('cloned')) |
93
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
11 self.assertRaises(ValueError, cloned.log) |
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
12 cloned.open() |
a4fcece7dd8e
hglib: add top level clone method
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
13 self.assertEquals(self.client.log(), cloned.log()) |