sapling/eden/scm/tests/test-filelog.py
Simon Farnsworth 5232dcf9d1 py3: make .py tests continue to run on python 2
Summary:
Use sed to convert testutil.ddot requires to hghave.

ignore-conflict-markers

for test-simplemerge.py

Reviewed By: simpkins

Differential Revision: D19658355

fbshipit-source-id: afae73eb1e43ead79514dfaf9f911f51ac25972e
2020-01-31 00:18:22 -08:00

68 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python
"""
Tests the behavior of filelog w.r.t. data starting with '\1\n'
"""
from __future__ import absolute_import, print_function
from edenscm.mercurial import hg, ui as uimod
from edenscm.mercurial.node import hex, nullid
from hghave import require
require(["py2"])
myui = uimod.ui.load()
repo = hg.repository(myui, path=".", create=True)
fl = repo.file("foobar")
def addrev(text, renamed=False):
if renamed:
# data doesn't matter. Just make sure filelog.renamed() returns True
meta = {"copyrev": hex(nullid), "copy": "bar"}
else:
meta = {}
lock = t = None
try:
lock = repo.lock()
t = repo.transaction("commit")
node = fl.add(text, meta, t, 0, nullid, nullid)
return node
finally:
if t:
t.close()
if lock:
lock.release()
def error(text):
print("ERROR: " + text)
textwith = "\1\nfoo"
without = "foo"
node = addrev(textwith)
if not textwith == fl.read(node):
error("filelog.read for data starting with \\1\\n")
if fl.cmp(node, textwith) or not fl.cmp(node, without):
error("filelog.cmp for data starting with \\1\\n")
if fl.size(0) != len(textwith):
error(
"FIXME: This is a known failure of filelog.size for data starting "
"with \\1\\n"
)
node = addrev(textwith, renamed=True)
if not textwith == fl.read(node):
error("filelog.read for a renaming + data starting with \\1\\n")
if fl.cmp(node, textwith) or not fl.cmp(node, without):
error("filelog.cmp for a renaming + data starting with \\1\\n")
if fl.size(1) != len(textwith):
error("filelog.size for a renaming + data starting with \\1\\n")
print("OK.")