Mercurial > public > mercurial-scm > python-hglib
diff tests/test-context.py @ 94:4da6bb8abfcc
context: initial implementation of changectx
tries to mimic Mercurial's changectx
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Thu, 22 Dec 2011 19:12:47 +0200 |
parents | |
children | bd23bc72e662 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-context.py Thu Dec 22 19:12:47 2011 +0200 @@ -0,0 +1,68 @@ +import common, hglib +from hglib import context + +class test_context(common.basetest): + def test_non_existent(self): + self.assertRaises(ValueError, context.changectx, self.client, 'foo') + + def test_basic(self): + self.append('a', 'a') + self.append('b', 'b') + rev0, node0 = self.client.commit('first', addremove=True) + + self.append('c', 'c') + rev1, node1 = self.client.commit('second', addremove=True) + + ctx = context.changectx(self.client, node0) + + self.assertEquals(ctx.description(), 'first') + self.assertEquals(str(ctx), node0[:12]) + self.assertEquals(ctx.node(), node0) + self.assertEquals(int(ctx), rev0) + self.assertEquals(ctx.rev(), rev0) + self.assertEquals(ctx.branch(), 'default') + + self.assertTrue(ctx) + + self.assertTrue('a' in ctx and 'b' in ctx) + self.assertFalse('c' in ctx) + self.assertEquals(list(ctx), ['a', 'b']) + self.assertEquals(ctx.files(), ['a', 'b']) + + self.assertEquals(ctx.modified(), []) + self.assertEquals(ctx.added(), ['a', 'b']) + self.assertEquals(ctx.removed(), []) + self.assertEquals(ctx.ignored(), []) + self.assertEquals(ctx.clean(), []) + + man = {'a' : '047b75c6d7a3ef6a2243bd0e99f94f6ea6683597', + 'b' : '62452855512f5b81522aa3895892760bb8da9f3f'} + self.assertEquals(ctx.manifest(), man) + + self.assertEquals([int(c) for c in ctx.parents()], [-1]) + self.assertEquals(int(ctx.p1()), -1) + self.assertEquals(int(ctx.p2()), -1) + + self.assertEquals([int(c) for c in ctx.children()], [1]) + self.assertEquals([int(c) for c in ctx.descendants()], [0, 1]) + self.assertEquals([int(c) for c in ctx.ancestors()], [0]) + + self.client.bookmark('bookmark', inactive=True, rev=node0) + self.assertEquals(ctx.bookmarks(), ['bookmark']) + + self.client.tag('tag', rev=node0) + # tags are read on construction + self.assertEquals(context.changectx(self.client, node0).tags(), ['tag']) + + def test_construction(self): + self.append('a', 'a') + rev0, node0 = self.client.commit('first', addremove=True) + tip = self.client.tip() + + # from client.revision + ctx = context.changectx(self.client, tip) + self.assertEquals(ctx.node(), tip.node) + + # from revset + ctx = context.changectx(self.client, 'all()') + self.assertEquals(ctx.node(), tip.node)