mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
408782f48a
Summary: Better handling of parentheses. ignore-unit-failures Reviewed By: carljm Differential Revision: D8294476 fbshipit-source-id: d0bdfd14d1b39cf19ac8a8a3c6d74c9f4fea8b13
67 lines
2.4 KiB
Python
67 lines
2.4 KiB
Python
# no-check-code -- see T24862348
|
|
|
|
import os
|
|
import sys
|
|
|
|
import test_hgsubversion_util
|
|
from hgext.hgsubversion import svnwrap
|
|
from mercurial import hg
|
|
|
|
|
|
def _do_case(self, name, layout):
|
|
subdir = test_hgsubversion_util.subdir.get(name, "")
|
|
config = {}
|
|
u = test_hgsubversion_util.testui()
|
|
for branch, path in test_hgsubversion_util.custom.get(name, {}).iteritems():
|
|
config["hgsubversionbranch.%s" % branch] = path
|
|
u.setconfig("hgsubversionbranch", branch, path)
|
|
repo, repo_path = self.load_and_fetch(
|
|
name, subdir=subdir, layout=layout, config=config
|
|
)
|
|
assert (
|
|
test_hgsubversion_util.repolen(self.repo) > 0
|
|
), "Repo had no changes, maybe you need to add a subdir entry in test_hgsubversion_util?"
|
|
wc2_path = self.wc_path + "_stupid"
|
|
checkout_path = repo_path
|
|
if subdir:
|
|
checkout_path += "/" + subdir
|
|
u.setconfig("hgsubversion", "stupid", "1")
|
|
u.setconfig("hgsubversion", "layout", layout)
|
|
cp = test_hgsubversion_util.fileurl(checkout_path)
|
|
test_hgsubversion_util.hgclone(u, cp, wc2_path, update=False)
|
|
if layout == "single":
|
|
self.assertEqual(len(self.repo.heads()), 1)
|
|
self.repo2 = hg.repository(test_hgsubversion_util.testui(), wc2_path)
|
|
self.assertEqual(self.repo.heads(), self.repo2.heads())
|
|
|
|
|
|
def buildmethod(case, name, layout):
|
|
m = lambda self: self._do_case(case, layout)
|
|
m.__name__ = name
|
|
m.__doc__ = "Test stupid produces same as real on %s. (%s)" % (case, layout)
|
|
return m
|
|
|
|
|
|
if svnwrap.subversion_version < (1, 9, 0):
|
|
attrs = {"_do_case": _do_case}
|
|
for case in (
|
|
f for f in os.listdir(test_hgsubversion_util.FIXTURES) if f.endswith(".svndump")
|
|
):
|
|
if case == "corrupt.svndump":
|
|
continue
|
|
name = "test_" + case[: -len(".svndump")].replace("-", "_")
|
|
# Automatic layout branchtag collision exposes a minor defect
|
|
# here, but since it isn't a regression we suppress the test case.
|
|
if case != "branchtagcollision.svndump":
|
|
attrs[name] = buildmethod(case, name, "auto")
|
|
attrs[name + "_single"] = buildmethod(case, name + "_single", "single")
|
|
if case in test_hgsubversion_util.custom:
|
|
attrs[name + "_custom"] = buildmethod(case, name + "_custom", "custom")
|
|
|
|
StupidPullTests = type("StupidPullTests", (test_hgsubversion_util.TestBase,), attrs)
|
|
|
|
if __name__ == "__main__":
|
|
import silenttestrunner
|
|
|
|
silenttestrunner.main(__name__)
|