Mercurial > public > mercurial-scm > python-hglib
comparison tests/test_context.py @ 219:8341f2494b3f
hglib tests: migrate away from (unmaintained) nose
author | Mathias De Mare <mathias.de_mare@nokia.com> |
---|---|
date | Wed, 08 Mar 2023 17:04:58 +0100 |
parents | tests/test-context.py@3f854e3bcdd1 |
children | a2afbf236ca8 |
comparison
equal
deleted
inserted
replaced
218:934608d4fcba | 219:8341f2494b3f |
---|---|
1 import sys | |
2 from tests import common | |
3 from hglib.error import CommandError | |
4 import hglib | |
5 from hglib import context | |
6 from hglib.util import b | |
7 | |
8 class test_context(common.basetest): | |
9 def test_non_existent(self): | |
10 self.assertRaises(ValueError, context.changectx, self.client, b('foo')) | |
11 | |
12 def test_basic(self): | |
13 self.append('a', 'a') | |
14 self.append('b', 'b') | |
15 rev0, node0 = self.client.commit(b('first'), addremove=True) | |
16 | |
17 self.append('c', 'c') | |
18 rev1, node1 = self.client.commit(b('second'), addremove=True) | |
19 | |
20 self.assertRaises(KeyError, self.client.__getitem__, 'doesnotexist') | |
21 | |
22 ctx = self.client[node0] | |
23 | |
24 self.assertEquals(ctx.description(), b('first')) | |
25 self.assertEquals(str(ctx), node0[:12].decode('latin-1')) | |
26 self.assertEquals(ctx.node(), node0) | |
27 self.assertEquals(int(ctx), rev0) | |
28 self.assertEquals(ctx.rev(), rev0) | |
29 self.assertEquals(ctx.branch(), b('default')) | |
30 | |
31 self.assertTrue(ctx) | |
32 | |
33 self.assertTrue(b('a') in ctx and b('b') in ctx) | |
34 self.assertFalse(b('c') in ctx) | |
35 self.assertEquals(list(ctx), [b('a'), b('b')]) | |
36 self.assertEquals(ctx.files(), [b('a'), b('b')]) | |
37 | |
38 self.assertEquals(ctx.modified(), []) | |
39 self.assertEquals(ctx.added(), [b('a'), b('b')]) | |
40 self.assertEquals(ctx.removed(), []) | |
41 self.assertEquals(ctx.ignored(), []) | |
42 self.assertEquals(ctx.clean(), []) | |
43 | |
44 man = {b('a') : b('047b75c6d7a3ef6a2243bd0e99f94f6ea6683597'), | |
45 b('b') : b('62452855512f5b81522aa3895892760bb8da9f3f')} | |
46 self.assertEquals(ctx.manifest(), man) | |
47 | |
48 self.assertEquals([int(c) for c in ctx.parents()], [-1]) | |
49 self.assertEquals(int(ctx.p1()), -1) | |
50 self.assertEquals(int(ctx.p2()), -1) | |
51 | |
52 self.assertEquals([int(c) for c in ctx.children()], [1]) | |
53 self.assertEquals([int(c) for c in ctx.descendants()], [0, 1]) | |
54 self.assertEquals([int(c) for c in ctx.ancestors()], [0]) | |
55 | |
56 self.client.bookmark(b('bookmark'), inactive=True, rev=node0) | |
57 self.assertEquals(ctx.bookmarks(), [b('bookmark')]) | |
58 | |
59 self.client.tag(b('tag'), rev=node0) | |
60 # tags are read on construction | |
61 self.assertEquals(self.client[node0].tags(), [b('tag')]) | |
62 | |
63 def test_construction(self): | |
64 self.append('a', 'a') | |
65 rev0, node0 = self.client.commit(b('first'), addremove=True) | |
66 tip = self.client.tip() | |
67 | |
68 # from client.revision | |
69 ctx = context.changectx(self.client, tip) | |
70 self.assertEquals(ctx.node(), tip.node) | |
71 | |
72 # from revset | |
73 ctx = context.changectx(self.client, b('all()')) | |
74 self.assertEquals(ctx.node(), tip.node) | |
75 | |
76 def test_in_keyword(self): | |
77 """ | |
78 test the 'in' keyword using both revision numbers or changeset ids. | |
79 """ | |
80 if sys.version_info < (2, 7): | |
81 return | |
82 | |
83 self.append('a', 'a') | |
84 rev0, node0 = self.client.commit(b('first'), addremove=True) | |
85 self.append('a', 'a') | |
86 rev1, node1 = self.client.commit(b('second')) | |
87 | |
88 self.assertIn(1, self.client) | |
89 hash_1 = self.client.log(0)[0][1] | |
90 self.assertIn(hash_1, self.client) | |
91 self.assertNotIn(2, self.client) | |
92 hash_2 = self.client.log(1)[0][1] | |
93 self.assertIn(hash_2, self.client) | |
94 hash_2 = b('deadbeef') | |
95 self.assertNotIn(hash_2, self.client) |