blob: 7457a84095f52070adfd993af163d37658e81f3b (
plain)
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
|