[Updated] D10310: tests: restore the ability to run `black` on Windows
mharbison72 (Matt Harbison)
phabricator at mercurial-scm.org
Thu Apr 8 18:17:59 UTC 2021
Closed by commit rHG41d43d12c2c4: tests: restore the ability to run `black` on Windows (authored by mharbison72).
This revision was automatically updated to reflect the committed changes.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D10310?vs=26657&id=26719
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D10310/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D10310
AFFECTED FILES
tests/hghave.py
tests/run-tests.py
tests/test-check-format.t
CHANGE DETAILS
diff --git a/tests/test-check-format.t b/tests/test-check-format.t
--- a/tests/test-check-format.t
+++ b/tests/test-check-format.t
@@ -1,5 +1,11 @@
#require black test-repo
+Black needs the real USERPROFILE in order to run on Windows
+#if msys
+ $ USERPROFILE="$REALUSERPROFILE"
+ $ export USERPROFILE
+#endif
+
$ cd $RUNTESTDIR/..
$ black --check --diff `hg files 'set:(**.py + grep("^#!.*python")) - mercurial/thirdparty/**'`
diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -1371,6 +1371,7 @@
env['TESTNAME'] = self.name
env['HOME'] = _bytes2sys(self._testtmp)
if os.name == 'nt':
+ env['REALUSERPROFILE'] = env['USERPROFILE']
# py3.8+ ignores HOME: https://bugs.python.org/issue36264
env['USERPROFILE'] = env['HOME']
formated_timeout = _bytes2sys(b"%d" % default_defaults['timeout'][1])
diff --git a/tests/hghave.py b/tests/hghave.py
--- a/tests/hghave.py
+++ b/tests/hghave.py
@@ -140,9 +140,22 @@
"""Return the match object if cmd executes successfully and its output
is matched by the supplied regular expression.
"""
+
+ # Tests on Windows have to fake USERPROFILE to point to the test area so
+ # that `~` is properly expanded on py3.8+. However, some tools like black
+ # make calls that need the real USERPROFILE in order to run `foo --version`.
+ env = os.environ
+ if os.name == 'nt':
+ env = os.environ.copy()
+ env['USERPROFILE'] = env['REALUSERPROFILE']
+
r = re.compile(regexp)
p = subprocess.Popen(
- cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
+ cmd,
+ shell=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ env=env,
)
s = p.communicate()[0]
ret = p.returncode
To: mharbison72, #hg-reviewers, pulkit
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20210408/345c1663/attachment-0002.html>
More information about the Mercurial-patches
mailing list