sapling/tests/comprehensive/test-hgsubversion-verify-and-startrev.py
Jun Wu a487dacc4b codemod: reformat rest of the code
Summary:
Previous code format attempt (D8173629) didn't cover all files due to `**/*.py`
was not expanded recursively by bash. That makes certain changes larger than
they should be (ex. D8675439). Now use zsh's `**/*.py` to format them.

Also fix Python syntax so black can run on more files, and all lint issues.

Reviewed By: phillco

Differential Revision: D8696912

fbshipit-source-id: 95f07aa0c5eb1b63947b0f77f534957f4ab65364
2018-07-05 17:52:43 -07:00

113 lines
3.5 KiB
Python

# no-check-code -- see T24862348
import os
import sys
import test_hgsubversion_util
from hgext.hgsubversion import verify
# these fixtures contain no files at HEAD and would result in empty clones
_skipshallow = set(
[
"binaryfiles.svndump",
"binaryfiles-broken.svndump",
"emptyrepo.svndump",
"correct.svndump",
"corrupt.svndump",
]
)
_skipall = set(["project_root_not_repo_root.svndump", "movetotrunk.svndump"])
_skipstandard = set(
[
"subdir_is_file_prefix.svndump",
"correct.svndump",
"corrupt.svndump",
"emptyrepo2.svndump",
"dir_removal.svndump",
]
)
def _do_case(self, name, layout):
subdir = test_hgsubversion_util.subdir.get(name, "")
config = {}
for branch, path in test_hgsubversion_util.custom.get(name, {}).iteritems():
config["hgsubversionbranch.%s" % branch] = path
repo, svnpath = self.load_and_fetch(
name, subdir=subdir, layout=layout, config=config
)
assert test_hgsubversion_util.repolen(self.repo) > 0
for i in repo:
ctx = repo[i]
self.assertEqual(verify.verify(repo.ui, repo, rev=ctx.node(), stupid=True), 0)
self.assertEqual(verify.verify(repo.ui, repo, rev=ctx.node(), stupid=False), 0)
# check a startrev clone
if layout == "single" and name not in _skipshallow:
self.wc_path += "_shallow"
shallowrepo = self.fetch(
svnpath, subdir=subdir, layout="single", startrev="HEAD"
)
self.assertEqual(
test_hgsubversion_util.repolen(shallowrepo),
1,
"shallow clone should have just one revision, not %d"
% test_hgsubversion_util.repolen(shallowrepo),
)
fulltip = repo["tip"]
shallowtip = shallowrepo["tip"]
repo.ui.pushbuffer()
self.assertEqual(
0, verify.verify(repo.ui, shallowrepo, rev=shallowtip.node(), stupid=True)
)
self.assertEqual(
0, verify.verify(repo.ui, shallowrepo, rev=shallowtip.node(), stupid=False)
)
stupidui = test_hgsubversion_util.testui(stupid=True)
self.assertEqual(verify.verify(stupidui, repo, rev=ctx.node(), stupid=True), 0)
self.assertEqual(verify.verify(stupidui, repo, rev=ctx.node(), stupid=False), 0)
# viewing diff's of lists of files is easier on the eyes
self.assertMultiLineEqual(
"\n".join(fulltip), "\n".join(shallowtip), repo.ui.popbuffer()
)
for f in fulltip:
self.assertMultiLineEqual(fulltip[f].data(), shallowtip[f].data())
def buildmethod(case, name, layout):
m = lambda self: self._do_case(case, layout)
m.__name__ = name
m.__doc__ = "Test verify on %s (%s)" % (case, layout)
return m
attrs = {"_do_case": _do_case, "stupid_mode_tests": True}
fixtures = [
f for f in os.listdir(test_hgsubversion_util.FIXTURES) if f.endswith(".svndump")
]
for case in fixtures:
if case in _skipall:
continue
bname = "test_" + case[: -len(".svndump")]
if case not in _skipstandard:
attrs[bname] = buildmethod(case, bname, "standard")
attrs[bname + "_single"] = buildmethod(case, bname + "_single", "single")
if case in test_hgsubversion_util.custom:
attrs[bname + "_custom"] = buildmethod(case, bname + "_custom", "custom")
VerifyTests = type("VerifyTests", (test_hgsubversion_util.TestBase,), attrs)
if __name__ == "__main__":
import silenttestrunner
silenttestrunner.main(__name__)