@@ -128,19 +128,34 @@ def test_completion_files_after_option(script, data):
128
128
(e.g. ``pip install -r``)
129
129
"""
130
130
res , env = setup_completion (
131
- script , ('pip install -r r' ),
132
- '3' ,
133
- data .complete_paths
131
+ script = script ,
132
+ words = ('pip install -r r' ),
133
+ cword = '3' ,
134
+ cwd = data .completion_paths ,
134
135
)
135
- assert 'requirements.txt' in res .stdout ,\
136
- "autocomplete function could not complete <file>" \
136
+ assert 'requirements.txt' in res .stdout , (
137
+ "autocomplete function could not complete <file> "
137
138
"after options in command"
138
- assert 'README.txt' not in res .stdout ,\
139
- "autocomplete function completed <file> that" \
139
+ )
140
+ assert os .path .join ('resources' , '' ) in res .stdout , (
141
+ "autocomplete function could not complete <dir> "
142
+ "after options in command"
143
+ )
144
+ assert not any (out in res .stdout for out in
145
+ (os .path .join ('REPLAY' , '' ), 'README.txt' )), (
146
+ "autocomplete function completed <file> or <dir> that "
140
147
"should not be completed"
141
- assert 'resources' in res .stdout ,\
142
- "autocomplete function could not complete <dir>" \
148
+ )
149
+ if sys .platform != 'win32' :
150
+ return
151
+ assert 'readme.txt' in res .stdout , (
152
+ "autocomplete function could not complete <file> "
143
153
"after options in command"
154
+ )
155
+ assert os .path .join ('replay' , '' ) in res .stdout , (
156
+ "autocomplete function could not complete <dir> "
157
+ "after options in command"
158
+ )
144
159
145
160
146
161
def test_completion_not_files_after_option (script , data ):
@@ -149,13 +164,21 @@ def test_completion_not_files_after_option(script, data):
149
164
(e.g. ``pip install``)
150
165
"""
151
166
res , env = setup_completion (
152
- script , ('pip install r' ),
153
- '2' ,
154
- data .complete_paths
167
+ script = script ,
168
+ words = ('pip install r' ),
169
+ cword = '2' ,
170
+ cwd = data .completion_paths ,
155
171
)
156
- assert 'requirements.txt' not in res .stdout ,\
157
- "autocomplete function completed <file> when" \
172
+ assert not any (out in res .stdout for out in
173
+ ('requirements.txt' , 'readme.txt' ,)), (
174
+ "autocomplete function completed <file> when "
158
175
"it should not complete"
176
+ )
177
+ assert not any (os .path .join (out , '' ) in res .stdout
178
+ for out in ('replay' , 'resources' )), (
179
+ "autocomplete function completed <dir> when "
180
+ "it should not complete"
181
+ )
159
182
160
183
161
184
def test_completion_directories_after_option (script , data ):
@@ -164,13 +187,23 @@ def test_completion_directories_after_option(script, data):
164
187
(e.g. ``pip --cache-dir``)
165
188
"""
166
189
res , env = setup_completion (
167
- script ,
168
- ('pip --cache-dir resources ' ),
169
- '2' ,
170
- data .complete_paths
190
+ script = script ,
191
+ words = ('pip --cache-dir r ' ),
192
+ cword = '2' ,
193
+ cwd = data .completion_paths ,
171
194
)
172
- assert os .path .join ('resources' , '' ) in res .stdout ,\
195
+ assert os .path .join ('resources' , '' ) in res .stdout , (
173
196
"autocomplete function could not complete <dir> after options"
197
+ )
198
+ assert not any (out in res .stdout for out in (
199
+ 'requirements.txt' , 'README.txt' , os .path .join ('REPLAY' , '' ))), (
200
+ "autocomplete function completed <dir> when "
201
+ "it should not complete"
202
+ )
203
+ if sys .platform == 'win32' :
204
+ assert os .path .join ('replay' , '' ) in res .stdout , (
205
+ "autocomplete function could not complete <dir> after options"
206
+ )
174
207
175
208
176
209
def test_completion_subdirectories_after_option (script , data ):
@@ -179,15 +212,16 @@ def test_completion_subdirectories_after_option(script, data):
179
212
given path of a directory
180
213
"""
181
214
res , env = setup_completion (
182
- script ,
183
- ('pip --cache-dir ' + os .path .join ('resources' , '' )),
184
- '2' ,
185
- data .complete_paths
215
+ script = script ,
216
+ words = ('pip --cache-dir ' + os .path .join ('resources' , '' )),
217
+ cword = '2' ,
218
+ cwd = data .completion_paths ,
186
219
)
187
220
assert os .path .join ('resources' ,
188
- os .path .join ('images' , '' )) in res .stdout ,\
189
- "autocomplete function could not complete <dir>" \
221
+ os .path .join ('images' , '' )) in res .stdout , (
222
+ "autocomplete function could not complete <dir> "
190
223
"given path of a directory after options"
224
+ )
191
225
192
226
193
227
def test_completion_path_after_option (script , data ):
@@ -196,13 +230,16 @@ def test_completion_path_after_option(script, data):
196
230
given absolute path
197
231
"""
198
232
res , env = setup_completion (
199
- script ,
200
- ('pip install -e ' + os .path .join (data .complete_paths , 'R' )),
201
- '3'
233
+ script = script ,
234
+ words = ('pip install -e ' + os .path .join (data .completion_paths , 'R' )),
235
+ cword = '3' ,
202
236
)
203
- assert os .path .join (data .complete_paths , 'README.txt' ) in res .stdout ,\
204
- "autocomplete function could not complete <path>" \
237
+ assert all (os .path .normcase (os .path .join (data .completion_paths , out ))
238
+ in res .stdout for out in (
239
+ 'README.txt' , os .path .join ('REPLAY' , '' ))), (
240
+ "autocomplete function could not complete <path> "
205
241
"after options in command given absolute path"
242
+ )
206
243
207
244
208
245
@pytest .mark .parametrize ('flag' , ['--bash' , '--zsh' , '--fish' ])
0 commit comments