diff options
Diffstat (limited to 'tests/wpt/web-platform-tests/tools/pytest/testing/test_argcomplete.py')
-rw-r--r-- | tests/wpt/web-platform-tests/tools/pytest/testing/test_argcomplete.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/tests/wpt/web-platform-tests/tools/pytest/testing/test_argcomplete.py b/tests/wpt/web-platform-tests/tools/pytest/testing/test_argcomplete.py deleted file mode 100644 index ace7d8ceb43..00000000000 --- a/tests/wpt/web-platform-tests/tools/pytest/testing/test_argcomplete.py +++ /dev/null @@ -1,90 +0,0 @@ -from __future__ import with_statement -import py, pytest - -# test for _argcomplete but not specific for any application - -def equal_with_bash(prefix, ffc, fc, out=None): - res = ffc(prefix) - res_bash = set(fc(prefix)) - retval = set(res) == res_bash - if out: - out.write('equal_with_bash %s %s\n' % (retval, res)) - if not retval: - out.write(' python - bash: %s\n' % (set(res) - res_bash)) - out.write(' bash - python: %s\n' % (res_bash - set(res))) - return retval - -# copied from argcomplete.completers as import from there -# also pulls in argcomplete.__init__ which opens filedescriptor 9 -# this gives an IOError at the end of testrun -def _wrapcall(*args, **kargs): - try: - if py.std.sys.version_info > (2,7): - return py.std.subprocess.check_output(*args,**kargs).decode().splitlines() - if 'stdout' in kargs: - raise ValueError('stdout argument not allowed, it will be overridden.') - process = py.std.subprocess.Popen( - stdout=py.std.subprocess.PIPE, *args, **kargs) - output, unused_err = process.communicate() - retcode = process.poll() - if retcode: - cmd = kargs.get("args") - if cmd is None: - cmd = args[0] - raise py.std.subprocess.CalledProcessError(retcode, cmd) - return output.decode().splitlines() - except py.std.subprocess.CalledProcessError: - return [] - -class FilesCompleter(object): - 'File completer class, optionally takes a list of allowed extensions' - def __init__(self,allowednames=(),directories=True): - # Fix if someone passes in a string instead of a list - if type(allowednames) is str: - allowednames = [allowednames] - - self.allowednames = [x.lstrip('*').lstrip('.') for x in allowednames] - self.directories = directories - - def __call__(self, prefix, **kwargs): - completion = [] - if self.allowednames: - if self.directories: - files = _wrapcall(['bash','-c', - "compgen -A directory -- '{p}'".format(p=prefix)]) - completion += [ f + '/' for f in files] - for x in self.allowednames: - completion += _wrapcall(['bash', '-c', - "compgen -A file -X '!*.{0}' -- '{p}'".format(x,p=prefix)]) - else: - completion += _wrapcall(['bash', '-c', - "compgen -A file -- '{p}'".format(p=prefix)]) - - anticomp = _wrapcall(['bash', '-c', - "compgen -A directory -- '{p}'".format(p=prefix)]) - - completion = list( set(completion) - set(anticomp)) - - if self.directories: - completion += [f + '/' for f in anticomp] - return completion - -class TestArgComplete: - @pytest.mark.skipif("sys.platform in ('win32', 'darwin')") - def test_compare_with_compgen(self): - from _pytest._argcomplete import FastFilesCompleter - ffc = FastFilesCompleter() - fc = FilesCompleter() - for x in '/ /d /data qqq'.split(): - assert equal_with_bash(x, ffc, fc, out=py.std.sys.stdout) - - @pytest.mark.skipif("sys.platform in ('win32', 'darwin')") - def test_remove_dir_prefix(self): - """this is not compatible with compgen but it is with bash itself: - ls /usr/<TAB> - """ - from _pytest._argcomplete import FastFilesCompleter - ffc = FastFilesCompleter() - fc = FilesCompleter() - for x in '/usr/'.split(): - assert not equal_with_bash(x, ffc, fc, out=py.std.sys.stdout) |