Mercurial > hg
view tests/test-minifileset.py @ 36412:03eff66adb3b
acl: replace bare getpass.getuser() by platform function
Follows up dbadf28d4db0. bytestr() shouldn't be applied here because getuser()
isn't guaranteed to be all in ASCII.
This change means GetUserNameA() is used on Windows, but that's probably
better than trying to get the current user name in UNIX way.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 25 Feb 2018 11:13:01 +0900 |
parents | 73432eee0ac4 |
children | 2cdae2582d8a |
line wrap: on
line source
from __future__ import absolute_import from __future__ import print_function import os import sys # make it runnable directly without run-tests.py sys.path[0:0] = [os.path.join(os.path.dirname(__file__), '..')] from mercurial import minifileset def check(text, truecases, falsecases): f = minifileset.compile(text) for args in truecases: if not f(*args): print('unexpected: %r should include %r' % (text, args)) for args in falsecases: if f(*args): print('unexpected: %r should exclude %r' % (text, args)) check('all()', [('a.php', 123), ('b.txt', 0)], []) check('none()', [], [('a.php', 123), ('b.txt', 0)]) check('!!!!((!(!!all())))', [], [('a.php', 123), ('b.txt', 0)]) check('"path:a" & (**.b | **.c)', [('a/b.b', 0), ('a/c.c', 0)], [('b/c.c', 0)]) check('(path:a & **.b) | **.c', [('a/b.b', 0), ('a/c.c', 0), ('b/c.c', 0)], []) check('**.bin - size("<20B")', [('b.bin', 21)], [('a.bin', 11), ('b.txt', 21)]) check('!!**.bin or size(">20B") + "path:bin" or !size(">10")', [('a.bin', 11), ('b.txt', 21), ('bin/abc', 11)], [('a.notbin', 11), ('b.txt', 11), ('bin2/abc', 11)]) check('(**.php and size(">10KB")) | **.zip | ("path:bin" & !"path:bin/README") ' ' | size(">1M")', [('a.php', 15000), ('a.zip', 0), ('bin/a', 0), ('bin/README', 1e7)], [('a.php', 5000), ('b.zip2', 0), ('t/bin/a', 0), ('bin/README', 1)])