##// END OF EJS Templates
test-context: add test for performing a diff on a memctx...
Sean Farley -
r21837:61b333b9 default
parent child Browse files
Show More
@@ -1,48 +1,52 b''
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
33
34 # test performing a status
34 # test performing a status
35
35
36 def getfilectx(repo, memctx, f):
36 def getfilectx(repo, memctx, f):
37 fctx = memctx.parents()[0][f]
37 fctx = memctx.parents()[0][f]
38 data, flags = fctx.data(), fctx.flags()
38 data, flags = fctx.data(), fctx.flags()
39 if f == 'foo':
39 if f == 'foo':
40 data += 'bar\n'
40 data += 'bar\n'
41 return context.memfilectx(repo, f, data, 'l' in flags, 'x' in flags)
41 return context.memfilectx(repo, f, data, 'l' in flags, 'x' in flags)
42
42
43 ctxa = repo.changectx(0)
43 ctxa = repo.changectx(0)
44 ctxb = context.memctx(repo, [ctxa.node(), None],
44 ctxb = context.memctx(repo, [ctxa.node(), None], "test diff", ["foo"],
45 "test diff",
45 getfilectx, ctxa.user(), ctxa.date())
46 ["foo"], getfilectx)
47
46
48 print ctxb.status(ctxa)
47 print ctxb.status(ctxa)
48
49 # test performing a diff on a memctx
50
51 for d in ctxb.diff(ctxa, git=True):
52 print d
@@ -1,5 +1,13 b''
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'], [], [], [], [], [], [])
5 (['foo'], [], [], [], [], [], [])
6 diff --git a/foo b/foo
7
8 --- a/foo
9 +++ b/foo
10 @@ -1,1 +1,2 @@
11 foo
12 +bar
13
General Comments 0
You need to be logged in to leave comments. Login now