Mercurial > hg
annotate contrib/casesmash.py @ 41138:8ddc5d8bea25
tests: support passing testcase after .t paths that have path separators
This probably could have been implemented by changing the regex above this bit
of code, but I wasn't sure if it would end up handling various OSes correctly,
so I decided to go with this version instead.
Previously:
$ tests/run-tests.py tests/test-ssh.t -l
running 2 tests using 2 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
$ tests/run-tests.py tests/test-ssh.t#sshv1 -l
running 0 tests using 0 parallel processes
# Ran 0 tests, 0 skipped, 0 failed.
Now:
$ tests/run-tests.py tests/test-ssh.t -l
running 2 tests using 2 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
$ tests/run-tests.py tests/test-ssh.t#sshv1 -l
running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
Differential Revision: https://phab.mercurial-scm.org/D5535
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Tue, 08 Jan 2019 17:52:39 -0800 |
parents | 42a7301fb4d5 |
children | 2372284d9457 |
rev | line source |
---|---|
28351
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
1 from __future__ import absolute_import |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
2 import __builtin__ |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
3 import os |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
4 from mercurial import ( |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
5 util, |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
6 ) |
14730 | 7 |
8 def lowerwrap(scope, funcname): | |
9 f = getattr(scope, funcname) | |
10 def wrap(fname, *args, **kwargs): | |
11 d, base = os.path.split(fname) | |
12 try: | |
13 files = os.listdir(d or '.') | |
19378
9de689d20230
cleanup: drop unused variables and an unused import
Simon Heimberg <simohe@besonet.ch>
parents:
19322
diff
changeset
|
14 except OSError: |
14730 | 15 files = [] |
16 if base in files: | |
17 return f(fname, *args, **kwargs) | |
18 for fn in files: | |
19 if fn.lower() == base.lower(): | |
20 return f(os.path.join(d, fn), *args, **kwargs) | |
21 return f(fname, *args, **kwargs) | |
22 scope.__dict__[funcname] = wrap | |
23 | |
24 def normcase(path): | |
25 return path.lower() | |
26 | |
27 os.path.normcase = normcase | |
28 | |
29 for f in 'file open'.split(): | |
30 lowerwrap(__builtin__, f) | |
31 | |
32 for f in "chmod chown open lstat stat remove unlink".split(): | |
33 lowerwrap(os, f) | |
34 | |
35 for f in "exists lexists".split(): | |
36 lowerwrap(os.path, f) | |
37 | |
38 lowerwrap(util, 'posixfile') |