# bash completion for pytest(1) -*- shell-script -*- _pytest() { local cur prev words cword split _init_completion -s || return case $prev in --help|--maxfail|--report|--junit-prefix|--doctest-glob|-!(-*)[hkmrp]) return ;; --import-mode) COMPREPLY=( $(compgen -W "prepend append" -- "$cur") ) return ;; --capture) COMPREPLY=( $(compgen -W "fd sys no" -- "$cur") ) return ;; --tb) COMPREPLY=( $(compgen -W "auto long short line native no" \ -- "$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) _filedir log return ;; --ignore) _filedir return ;; --confcutdir|--basetemp|--rsyncdir) _filedir -d 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 _filedir py } && complete -F _pytest pytest pytest-2 pytest-3 py.test py.test-2 py.test-3 # ex: filetype=sh