##// END OF EJS Templates
tests: restore the ability to run `black` on Windows...
Matt Harbison -
r47629:41d43d12 default
parent child Browse files
Show More
@@ -140,9 +140,22 b' def matchoutput(cmd, regexp, ignorestatu'
140 140 """Return the match object if cmd executes successfully and its output
141 141 is matched by the supplied regular expression.
142 142 """
143
144 # Tests on Windows have to fake USERPROFILE to point to the test area so
145 # that `~` is properly expanded on py3.8+. However, some tools like black
146 # make calls that need the real USERPROFILE in order to run `foo --version`.
147 env = os.environ
148 if os.name == 'nt':
149 env = os.environ.copy()
150 env['USERPROFILE'] = env['REALUSERPROFILE']
151
143 152 r = re.compile(regexp)
144 153 p = subprocess.Popen(
145 cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
154 cmd,
155 shell=True,
156 stdout=subprocess.PIPE,
157 stderr=subprocess.STDOUT,
158 env=env,
146 159 )
147 160 s = p.communicate()[0]
148 161 ret = p.returncode
@@ -1371,6 +1371,7 b' class Test(unittest.TestCase):'
1371 1371 env['TESTNAME'] = self.name
1372 1372 env['HOME'] = _bytes2sys(self._testtmp)
1373 1373 if os.name == 'nt':
1374 env['REALUSERPROFILE'] = env['USERPROFILE']
1374 1375 # py3.8+ ignores HOME: https://bugs.python.org/issue36264
1375 1376 env['USERPROFILE'] = env['HOME']
1376 1377 formated_timeout = _bytes2sys(b"%d" % default_defaults['timeout'][1])
@@ -1,5 +1,11 b''
1 1 #require black test-repo
2 2
3 Black needs the real USERPROFILE in order to run on Windows
4 #if msys
5 $ USERPROFILE="$REALUSERPROFILE"
6 $ export USERPROFILE
7 #endif
8
3 9 $ cd $RUNTESTDIR/..
4 10 $ black --check --diff `hg files 'set:(**.py + grep("^#!.*python")) - mercurial/thirdparty/**'`
5 11
General Comments 0
You need to be logged in to leave comments. Login now