##// END OF EJS Templates
test-context: add test for memctx status
Sean Farley -
r21836:232038a0 default
parent child Browse files
Show More
@@ -1,32 +1,48
1 import os
1 import os
2 from mercurial import hg, ui, context, encoding
2 from mercurial import hg, ui, context, encoding
3
3
4 u = ui.ui()
4 u = ui.ui()
5
5
6 repo = hg.repository(u, 'test1', create=1)
6 repo = hg.repository(u, 'test1', create=1)
7 os.chdir('test1')
7 os.chdir('test1')
8
8
9 # create 'foo' with fixed time stamp
9 # create 'foo' with fixed time stamp
10 f = open('foo', 'w')
10 f = open('foo', 'w')
11 f.write('foo\n')
11 f.write('foo\n')
12 f.close()
12 f.close()
13 os.utime('foo', (1000, 1000))
13 os.utime('foo', (1000, 1000))
14
14
15 # add+commit 'foo'
15 # add+commit 'foo'
16 repo[None].add(['foo'])
16 repo[None].add(['foo'])
17 repo.commit(text='commit1', date="0 0")
17 repo.commit(text='commit1', date="0 0")
18
18
19 print "workingfilectx.date =", repo[None]['foo'].date()
19 print "workingfilectx.date =", repo[None]['foo'].date()
20
20
21 # test memctx with non-ASCII commit message
21 # test memctx with non-ASCII commit message
22
22
23 def filectxfn(repo, memctx, path):
23 def filectxfn(repo, memctx, path):
24 return context.memfilectx(repo, "foo", "")
24 return context.memfilectx(repo, "foo", "")
25
25
26 ctx = context.memctx(repo, ['tip', None],
26 ctx = context.memctx(repo, ['tip', None],
27 encoding.tolocal("Gr\xc3\xbcezi!"),
27 encoding.tolocal("Gr\xc3\xbcezi!"),
28 ["foo"], filectxfn)
28 ["foo"], filectxfn)
29 ctx.commit()
29 ctx.commit()
30 for enc in "ASCII", "Latin-1", "UTF-8":
30 for enc in "ASCII", "Latin-1", "UTF-8":
31 encoding.encoding = enc
31 encoding.encoding = enc
32 print "%-8s: %s" % (enc, repo["tip"].description())
32 print "%-8s: %s" % (enc, repo["tip"].description())
33
34 # test performing a status
35
36 def getfilectx(repo, memctx, f):
37 fctx = memctx.parents()[0][f]
38 data, flags = fctx.data(), fctx.flags()
39 if f == 'foo':
40 data += 'bar\n'
41 return context.memfilectx(repo, f, data, 'l' in flags, 'x' in flags)
42
43 ctxa = repo.changectx(0)
44 ctxb = context.memctx(repo, [ctxa.node(), None],
45 "test diff",
46 ["foo"], getfilectx)
47
48 print ctxb.status(ctxa)
@@ -1,4 +1,5
1 workingfilectx.date = (1000, 0)
1 workingfilectx.date = (1000, 0)
2 ASCII : Gr?ezi!
2 ASCII : Gr?ezi!
3 Latin-1 : Gr�ezi!
3 Latin-1 : Gr�ezi!
4 UTF-8 : Grüezi!
4 UTF-8 : Grüezi!
5 (['foo'], [], [], [], [], [], [])
General Comments 0
You need to be logged in to leave comments. Login now