@@ -128,7 +128,11 @@ def autocomplete_script(
128
128
129
129
class DoAutocomplete (Protocol ):
130
130
def __call__ (
131
- self , words : str , cword : str , cwd : Union [Path , str , None ] = None
131
+ self ,
132
+ words : str ,
133
+ cword : str ,
134
+ cwd : Union [Path , str , None ] = None ,
135
+ include_env : bool = True ,
132
136
) -> Tuple [TestPipResult , PipTestEnvironment ]:
133
137
...
134
138
@@ -141,10 +145,14 @@ def autocomplete(
141
145
autocomplete_script .environ ["PIP_AUTO_COMPLETE" ] = "1"
142
146
143
147
def do_autocomplete (
144
- words : str , cword : str , cwd : Union [Path , str , None ] = None
148
+ words : str ,
149
+ cword : str ,
150
+ cwd : Union [Path , str , None ] = None ,
151
+ include_env : bool = True ,
145
152
) -> Tuple [TestPipResult , PipTestEnvironment ]:
146
- autocomplete_script .environ ["COMP_WORDS" ] = words
147
- autocomplete_script .environ ["COMP_CWORD" ] = cword
153
+ if include_env :
154
+ autocomplete_script .environ ["COMP_WORDS" ] = words
155
+ autocomplete_script .environ ["COMP_CWORD" ] = cword
148
156
result = autocomplete_script .run (
149
157
"python" ,
150
158
"-c" ,
@@ -409,3 +417,16 @@ def test_completion_uses_same_executable_name(
409
417
expect_stderr = deprecated_python ,
410
418
)
411
419
assert executable_name in result .stdout
420
+
421
+
422
+ def test_completion_without_env_vars (autocomplete : DoAutocomplete ) -> None :
423
+ """
424
+ Test getting completion <path> after options in command
425
+ given absolute path
426
+ """
427
+ res , env = autocomplete (
428
+ words = "pip install " ,
429
+ cword = "" ,
430
+ include_env = False ,
431
+ )
432
+ assert res .stdout == ""
0 commit comments