Mercurial > public > mercurial-scm > python-hglib
comparison tests/test-hglib.py @ 0:79f88b4db15f
Initial commit
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Wed, 20 Jul 2011 16:09:34 -0500 |
parents | |
children | 5fa34c3ac9a0 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:79f88b4db15f |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 import unittest | |
4 | |
5 import sys, os, subprocess, cStringIO, shutil, tempfile | |
6 | |
7 # XXX fix this hack | |
8 sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../') | |
9 from hglib import hglib | |
10 | |
11 class test_hglib(unittest.TestCase): | |
12 def setUp(self): | |
13 self._tmpdir = tempfile.mkdtemp() | |
14 os.chdir(self._tmpdir) | |
15 # until we can run norepo commands in the cmdserver | |
16 os.system('hg init') | |
17 self.client = hglib.connect() | |
18 | |
19 def tearDown(self): | |
20 shutil.rmtree(self._tmpdir) | |
21 | |
22 def append(self, path, *args): | |
23 f = open(path, 'a') | |
24 for a in args: | |
25 f.write(str(a)) | |
26 f.close() | |
27 | |
28 def test_log(self): | |
29 self.append('a', 'a') | |
30 rev0 = self.client.commit('first', addremove=True) | |
31 self.append('a', 'a') | |
32 rev1 = self.client.commit('second') | |
33 | |
34 revs = self.client.log() | |
35 revs.reverse() | |
36 | |
37 self.assertTrue(len(revs) == 2) | |
38 self.assertEquals(revs[1], rev1) | |
39 | |
40 self.assertEquals(revs[0], self.client.log('0')[0]) | |
41 | |
42 def test_outgoing_incoming(self): | |
43 self.append('a', 'a') | |
44 self.client.commit('first', addremove=True) | |
45 self.append('a', 'a') | |
46 self.client.commit('second') | |
47 | |
48 self.client.clone(dest='bar') | |
49 bar = hglib.connect('bar') | |
50 | |
51 self.assertEquals(self.client.log(), bar.log()) | |
52 self.assertEquals(self.client.outgoing(path='bar'), bar.incoming()) | |
53 | |
54 self.append('a', 'a') | |
55 rev = self.client.commit('third') | |
56 out = self.client.outgoing(path='bar') | |
57 | |
58 self.assertEquals(len(out), 1) | |
59 self.assertEquals(out[0], rev) | |
60 | |
61 self.assertEquals(out, bar.incoming()) | |
62 | |
63 def test_branch(self): | |
64 self.assertEquals(self.client.branch(), 'default') | |
65 self.append('a', 'a') | |
66 rev = self.client.commit('first', addremove=True) | |
67 branches = self.client.branches() | |
68 | |
69 self.assertEquals(rev, branches[rev.branch]) | |
70 | |
71 def test_encoding(self): | |
72 self.client = hglib.connect(encoding='utf-8') | |
73 self.assertEquals(self.client.encoding, 'utf-8') | |
74 | |
75 def test_paths(self): | |
76 open('.hg/hgrc', 'a').write('[paths]\nfoo = bar\n') | |
77 | |
78 # hgrc isn't watched for changes yet, have to reconnect | |
79 self.client = hglib.connect() | |
80 paths = self.client.paths() | |
81 self.assertEquals(len(paths), 1) | |
82 self.assertEquals(paths['foo'], os.path.abspath('bar')) | |
83 self.assertEquals(self.client.paths('foo'), os.path.abspath('bar')) | |
84 | |
85 def test_import(self): | |
86 patch = """ | |
87 # HG changeset patch | |
88 # User test | |
89 # Date 0 0 | |
90 # Node ID c103a3dec114d882c98382d684d8af798d09d857 | |
91 # Parent 0000000000000000000000000000000000000000 | |
92 1 | |
93 | |
94 diff -r 000000000000 -r c103a3dec114 a | |
95 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
96 +++ b/a Thu Jan 01 00:00:00 1970 +0000 | |
97 @@ -0,0 +1,1 @@ | |
98 +1 | |
99 """ | |
100 self.client.import_(cStringIO.StringIO(patch)) | |
101 self.assertEquals(self.client.cat(['a']), '1\n') | |
102 | |
103 if __name__ == '__main__': | |
104 stream = cStringIO.StringIO() | |
105 runner = unittest.TextTestRunner(stream=stream, verbosity=0) | |
106 | |
107 # XXX fix this | |
108 module = __import__('__main__') | |
109 loader = unittest.TestLoader() | |
110 ret = not runner.run(loader.loadTestsFromModule(module)).wasSuccessful() | |
111 if ret: | |
112 print stream.getvalue() | |
113 | |
114 sys.exit(ret) |