tests: always access the mercurial repo through `helpers-testrepo.sh`
In some contexts the mercurial repo needs to be accessed through system hg.
That's what `helpers-testrepo.sh` enforces, but some tests incorrectly
use the mercurial repo without going through that script.
This patch fixes those tests.
--- a/tests/test-check-format.t Wed Oct 02 14:49:07 2024 +0100
+++ b/tests/test-check-format.t Wed Oct 02 14:51:56 2024 +0100
@@ -6,6 +6,8 @@
$ export USERPROFILE
#endif
+ $ . "$TESTDIR/helpers-testrepo.sh"
+
$ cd $RUNTESTDIR/..
- $ black --check --diff `hg files 'set:(**.py + grep("^#!.*python")) - mercurial/thirdparty/**'`
+ $ black --check --diff `testrepohg files 'set:(**.py + grep("^#!.*python")) - mercurial/thirdparty/**'`
--- a/tests/test-check-help.t Wed Oct 02 14:49:07 2024 +0100
+++ b/tests/test-check-help.t Wed Oct 02 14:51:56 2024 +0100
@@ -19,12 +19,11 @@
> stdout.write(b'%s\n' % s)
> EOF
- $ cd "$TESTDIR"/..
-
Check if ":hg:`help TOPIC`" is valid:
(use "xargs -n1 -t" to see which help commands are executed)
+ $ cd "$TESTDIR"/..
$ testrepohg files 'glob:{hgdemandimport,hgext,mercurial}/**/*.py' \
> | sed 's|\\|/|g' \
> | xargs "$PYTHON" "$TESTTMP/scanhelptopics.py" \
- > | xargs -n1 hg help --config extensions.phabricator= > /dev/null
+ > | xargs -n1 hg --cwd "$TESTTMP" help --config extensions.phabricator= > /dev/null
--- a/tests/test-check-interfaces.py Wed Oct 02 14:49:07 2024 +0100
+++ b/tests/test-check-interfaces.py Wed Oct 02 14:51:56 2024 +0100
@@ -9,12 +9,6 @@
import subprocess
import sys
-# Only run if tests are run in a repo
-if subprocess.call(
- [sys.executable, '%s/hghave' % os.environ['TESTDIR'], 'test-repo']
-):
- sys.exit(80)
-
from mercurial.interfaces import (
dirstate as intdirstate,
repository,
@@ -41,7 +35,6 @@
)
testdir = os.path.dirname(__file__)
-rootdir = pycompat.fsencode(os.path.normpath(os.path.join(testdir, '..')))
sys.path[0:0] = [testdir]
import simplestorerepo
@@ -117,6 +110,14 @@
pass
+def init_test_repo():
+ testtmp_dir = os.path.normpath(os.environ['TESTTMP'])
+ test_repo_dir = os.path.join(testtmp_dir, "test-repo")
+ subprocess.run(["hg", "init", test_repo_dir])
+ subprocess.run(["hg", "--cwd", test_repo_dir, "debugbuilddag", "+3<3+1"])
+ return test_repo_dir
+
+
def main():
ui = uimod.ui()
# Needed so we can open a local repo with obsstore without a warning.
@@ -168,7 +169,8 @@
ziverify.verifyClass(
repository.ilocalrepositoryfilestorage, localrepo.revlogfilestorage
)
- repo = localrepo.makelocalrepository(ui, rootdir)
+ test_repo_dir = init_test_repo()
+ repo = localrepo.makelocalrepository(ui, pycompat.fsencode(test_repo_dir))
checkzobject(repo)
ziverify.verifyClass(
--- a/tests/test-doctest.py Wed Oct 02 14:49:07 2024 +0100
+++ b/tests/test-doctest.py Wed Oct 02 14:51:56 2024 +0100
@@ -72,7 +72,8 @@
sys.exit(0)
files = subprocess.check_output(
- "hg files --print0 \"%s\"" % fileset,
+ "HGRCPATH=/dev/null . helpers-testrepo.sh; testrepohg files --print0 \"%s\""
+ % fileset,
shell=True,
cwd=cwd,
).split(b'\0')