annotate tests/test-update.py @ 109:9324a89dd84e

client: Be more permissive on the output of update (issue3892) Some extensions can add lines to the output, we now ignore them
author Benoit Allard <benoit@aeteurope.nl>
date Tue, 23 Apr 2013 22:11:26 +0200
parents 86ff8611a8fa
children 8867908fe8c7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
1 import common
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
2 from hglib import error
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
3
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
4 class test_update(common.basetest):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
5 def setUp(self):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
6 common.basetest.setUp(self)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
7 self.append('a', 'a')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
8 self.rev0, self.node0 = self.client.commit('first', addremove=True)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
9 self.append('a', 'a')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
10 self.rev1, self.node1 = self.client.commit('second')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
11
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
12 def test_basic(self):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
13 u, m, r, ur = self.client.update(self.rev0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
14 self.assertEquals(u, 1)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
15 self.assertEquals(m, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
16 self.assertEquals(r, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
17 self.assertEquals(ur, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
18
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
19 def test_unresolved(self):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
20 self.client.update(self.rev0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
21 self.append('a', 'b')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
22 u, m, r, ur = self.client.update()
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
23 self.assertEquals(u, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
24 self.assertEquals(m, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
25 self.assertEquals(r, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
26 self.assertEquals(ur, 1)
34
f6e1d9a6e0cd client: change return value of status() to a list of (code, file path)
Idan Kamara <idankk86@gmail.com>
parents: 20
diff changeset
27 self.assertTrue(('M', 'a') in self.client.status())
20
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
28
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
29 def test_merge(self):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
30 self.append('a', '\n\n\n\nb')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
31 rev2, node2 = self.client.commit('third')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
32 self.append('a', 'b')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
33 self.client.commit('fourth')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
34 self.client.update(rev2)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
35 old = open('a').read()
68
a0328b08e028 tests: open files in binary mode so new lines aren't converted
Idan Kamara <idankk86@gmail.com>
parents: 34
diff changeset
36 open('a', 'wb').write('a' + old)
20
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
37 u, m, r, ur = self.client.update()
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
38 self.assertEquals(u, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
39 self.assertEquals(m, 1)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
40 self.assertEquals(r, 0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
41 self.assertEquals(ur, 0)
34
f6e1d9a6e0cd client: change return value of status() to a list of (code, file path)
Idan Kamara <idankk86@gmail.com>
parents: 20
diff changeset
42 self.assertEquals(self.client.status(), [('M', 'a')])
20
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
43
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
44 def test_tip(self):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
45 self.client.update(self.rev0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
46 u, m, r, ur = self.client.update()
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
47 self.assertEquals(u, 1)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
48 self.assertEquals(self.client.parents()[0].node, self.node1)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
49
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
50 self.client.update(self.rev0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
51 self.append('a', 'b')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
52 rev2, node2 = self.client.commit('new head')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
53 self.client.update(self.rev0)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
54
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
55 self.client.update()
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
56 self.assertEquals(self.client.parents()[0].node, node2)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
57
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
58 def test_check_clean(self):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
59 self.assertRaises(ValueError, self.client.update, clean=True, check=True)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
60
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
61 def test_clean(self):
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
62 old = open('a').read()
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
63 self.append('a', 'b')
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
64 self.assertRaises(error.CommandError, self.client.update, check=True)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
65
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
66 u, m, r, ur = self.client.update(clean=True)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
67 self.assertEquals(u, 1)
6a9d16ddae31 client: add update command
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
68 self.assertEquals(old, open('a').read())
105
86ff8611a8fa client: always set HGPLAIN=1 (issue3502)
Siddharth Agarwal <sid0@fb.com>
parents: 68
diff changeset
69
86ff8611a8fa client: always set HGPLAIN=1 (issue3502)
Siddharth Agarwal <sid0@fb.com>
parents: 68
diff changeset
70 def test_basic_plain(self):
86ff8611a8fa client: always set HGPLAIN=1 (issue3502)
Siddharth Agarwal <sid0@fb.com>
parents: 68
diff changeset
71 open('.hg/hgrc', 'a').write('[defaults]\nupdate=-v\n')
86ff8611a8fa client: always set HGPLAIN=1 (issue3502)
Siddharth Agarwal <sid0@fb.com>
parents: 68
diff changeset
72 self.test_basic()
109
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
73
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
74 def test_largefiles(self):
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
75 import os
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
76 open('.hg/hgrc', 'a').write('[extensions]\nlargefiles=\n')
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
77 self.append('b', 'a')
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
78 self.client.rawcommand(['add', 'b', '--large'])
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
79 rev2, node2 = self.client.commit('third')
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
80 # Go back to 0
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
81 self.client.rawcommand(['update', str(self.rev0)],
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
82 # Keep the 'changed' version
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
83 prompt=lambda s, d: 'c\n')
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
84 u, m, r, ur = self.client.update(rev2, clean=True)
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
85 self.assertEquals(u, 2)
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
86 self.assertEquals(m, 0)
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
87 self.assertEquals(r, 0)
9324a89dd84e client: Be more permissive on the output of update (issue3892)
Benoit Allard <benoit@aeteurope.nl>
parents: 105
diff changeset
88 self.assertEquals(ur, 0)