File: test-context.py

package info (click to toggle)
python-hglib 1.4-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 312 kB
  • sloc: python: 2,098; makefile: 20
file content (91 lines) | stat: -rw-r--r-- 3,177 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import sys
from hglib.error import CommandError
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 = 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(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)

    def test_in_keyword(self):
        """
        test the 'in' keyword using both revision numbers or changeset ids.
        """
        if sys.version_info < (2, 7):
            return

        self.append('a', 'a')
        rev0, node0 = self.client.commit('first', addremove=True)
        self.append('a', 'a')
        rev1, node1 = self.client.commit('second')

        self.assertIn(1, self.client)
        hash_1 = self.client.log(0)[0][1]
        self.assertIn(hash_1, self.client)
        self.assertNotIn(2, self.client)
        hash_2 = self.client.log(1)[0][1]
        self.assertIn(hash_2, self.client)
        hash_2 = 'deadbeef'
        self.assertNotIn(hash_2, self.client)