##// 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 1 import os
2 2 from mercurial import hg, ui, context, encoding
3 3
4 4 u = ui.ui()
5 5
6 6 repo = hg.repository(u, 'test1', create=1)
7 7 os.chdir('test1')
8 8
9 9 # create 'foo' with fixed time stamp
10 10 f = open('foo', 'w')
11 11 f.write('foo\n')
12 12 f.close()
13 13 os.utime('foo', (1000, 1000))
14 14
15 15 # add+commit 'foo'
16 16 repo[None].add(['foo'])
17 17 repo.commit(text='commit1', date="0 0")
18 18
19 19 print "workingfilectx.date =", repo[None]['foo'].date()
20 20
21 21 # test memctx with non-ASCII commit message
22 22
23 23 def filectxfn(repo, memctx, path):
24 24 return context.memfilectx(repo, "foo", "")
25 25
26 26 ctx = context.memctx(repo, ['tip', None],
27 27 encoding.tolocal("Gr\xc3\xbcezi!"),
28 28 ["foo"], filectxfn)
29 29 ctx.commit()
30 30 for enc in "ASCII", "Latin-1", "UTF-8":
31 31 encoding.encoding = enc
32 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 1 workingfilectx.date = (1000, 0)
2 2 ASCII : Gr?ezi!
3 3 Latin-1 : Gr�ezi!
4 4 UTF-8 : Grüezi!
5 (['foo'], [], [], [], [], [], [])
General Comments 0
You need to be logged in to leave comments. Login now