test-context.py
52 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
/ tests / test-context.py
Thomas Arendsen Hein
|
r4110 | import os | ||
Martin Geisler
|
r14379 | from mercurial import hg, ui, context, encoding | ||
Thomas Arendsen Hein
|
r4110 | |||
u = ui.ui() | ||||
repo = hg.repository(u, 'test1', create=1) | ||||
os.chdir('test1') | ||||
# create 'foo' with fixed time stamp | ||||
Alejandro Santos
|
r9031 | f = open('foo', 'w') | ||
Thomas Arendsen Hein
|
r4110 | f.write('foo\n') | ||
f.close() | ||||
os.utime('foo', (1000, 1000)) | ||||
# add+commit 'foo' | ||||
Dirkjan Ochtman
|
r11303 | repo[None].add(['foo']) | ||
Thomas Arendsen Hein
|
r4110 | repo.commit(text='commit1', date="0 0") | ||
Matt Mackall
|
r6747 | print "workingfilectx.date =", repo[None]['foo'].date() | ||
Martin Geisler
|
r14379 | |||
# test memctx with non-ASCII commit message | ||||
def filectxfn(repo, memctx, path): | ||||
Sean Farley
|
r21689 | return context.memfilectx(repo, "foo", "") | ||
Martin Geisler
|
r14379 | |||
ctx = context.memctx(repo, ['tip', None], | ||||
encoding.tolocal("Gr\xc3\xbcezi!"), | ||||
["foo"], filectxfn) | ||||
ctx.commit() | ||||
for enc in "ASCII", "Latin-1", "UTF-8": | ||||
encoding.encoding = enc | ||||
print "%-8s: %s" % (enc, repo["tip"].description()) | ||||
Sean Farley
|
r21836 | |||
# test performing a status | ||||
def getfilectx(repo, memctx, f): | ||||
fctx = memctx.parents()[0][f] | ||||
data, flags = fctx.data(), fctx.flags() | ||||
if f == 'foo': | ||||
data += 'bar\n' | ||||
return context.memfilectx(repo, f, data, 'l' in flags, 'x' in flags) | ||||
ctxa = repo.changectx(0) | ||||
Sean Farley
|
r21837 | ctxb = context.memctx(repo, [ctxa.node(), None], "test diff", ["foo"], | ||
getfilectx, ctxa.user(), ctxa.date()) | ||||
Sean Farley
|
r21836 | |||
print ctxb.status(ctxa) | ||||
Sean Farley
|
r21837 | |||
# test performing a diff on a memctx | ||||
for d in ctxb.diff(ctxa, git=True): | ||||
print d | ||||