1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
# bash completion for pytest(1) -*- shell-script -*-
_pytest()
{
local cur prev words cword split
_init_completion -s -n : || return
case $prev in
--help | --maxfail | --report | --junit-prefix | --doctest-glob | -!(-*)[hkmorp])
return
;;
--import-mode)
COMPREPLY=($(compgen -W "prepend append" -- "$cur"))
return
;;
--capture)
COMPREPLY=($(compgen -W "fd sys no tee-sys" -- "$cur"))
return
;;
--lfnf | --last-failed-no-failures)
COMPREPLY=($(compgen -W "all none" -- "$cur"))
return
;;
--tb)
COMPREPLY=($(compgen -W "auto long short line native no" \
-- "$cur"))
return
;;
--show-capture)
COMPREPLY=($(compgen -W "no stdout stderr log all" -- "$cur"))
return
;;
--color)
COMPREPLY=($(compgen -W "yes no auto" -- "$cur"))
return
;;
--pastebin)
COMPREPLY=($(compgen -W "failed all" -- "$cur"))
return
;;
--junit-xml)
_filedir xml
return
;;
--result-log | --log-file)
_filedir log
return
;;
--ignore)
_filedir
return
;;
--confcutdir | --basetemp | --rsyncdir | --rootdir)
_filedir -d
return
;;
--doctest-report)
COMPREPLY=($(compgen -W "none cdiff ndiff udiff only_first_failure" -- "$cur"))
return
;;
--assert)
COMPREPLY=($(compgen -W "plain reinterp rewrite" -- "$cur"))
return
;;
--genscript)
_filedir py
return
;;
--pythonwarnings | -!(-*)W)
_xfunc python _python_warning_actions
return
;;
--numprocesses | -!(-*)n)
COMPREPLY=($(compgen -W "{1..$(_ncpus)} auto" -- "$cur"))
return
;;
--dist)
local modes=$("$1" --dist=nonexistent-distmode 2>&1 |
command sed -e 's/[^[:space:][:alnum:]-]\{1,\}//g' \
-ne 's/.*choose from //p')
COMPREPLY=($(compgen -W '$modes' -- "$cur"))
return
;;
esac
$split && return
if [[ $cur == -* ]]; then
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
return
fi
if [[ $cur == *.py::*:* ]]; then
local file=${cur/.py:*/.py}
local class=${cur#*.py::} in_class=false
local line
class=${class%%:*}
while IFS= read -r line; do
if [[ $line =~ ^class[[:space:]]+${class}[[:space:]:\(] ]]; then
in_class=true
elif [[ $line =~ ^class[[:space:]] ]]; then
in_class=false
fi
if $in_class && [[ $line =~ ^[[:space:]]+(async[[:space:]]+)?def[[:space:]]+(test_[A-Za-z0-9_]+) ]]; then
COMPREPLY+=(${BASH_REMATCH[2]})
fi
done 2>/dev/null <"$file"
((!${#COMPREPLY[@]})) ||
COMPREPLY=($(compgen -P "$file::$class::" -W '${COMPREPLY[@]}' \
-- "${cur##*:?(:)}"))
__ltrim_colon_completions "$cur"
return
elif [[ $cur == *.py:* ]]; then
local file="${cur/.py:*/.py}" line
while IFS= read -r line; do
if [[ $line =~ ^class[[:space:]]+(Test[A-Za-z0-9_]+) ]]; then
COMPREPLY+=(${BASH_REMATCH[1]})
elif [[ $line =~ ^(async[[:space:]]+)?def[[:space:]]+(test_[A-Za-z0-9_]+) ]]; then
COMPREPLY+=(${BASH_REMATCH[2]})
fi
done 2>/dev/null <"$file"
((!${#COMPREPLY[@]})) ||
COMPREPLY=($(compgen -P "$file::" -W '${COMPREPLY[@]}' \
-- "${cur##*.py:?(:)}"))
__ltrim_colon_completions "$cur"
return
fi
_filedir py
} &&
complete -F _pytest pytest pytest-2 pytest-3 py.test py.test-2 py.test-3
# ex: filetype=sh
|