Skip to content

Commit 1ebdd60

Browse files
committed
Fix intermixed options on older Python
1 parent 5b604c3 commit 1ebdd60

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

httpie/cli/argparser.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,10 @@ def parse_args(
156156
) -> argparse.Namespace:
157157
self.env = env
158158
self.env.args = namespace = namespace or argparse.Namespace()
159-
self.args, no_options = super().parse_known_args(args, namespace)
159+
self.args, no_options = super().parse_known_intermixed_args(
160+
args,
161+
namespace,
162+
)
160163
if self.args.debug:
161164
self.args.traceback = True
162165
self.has_stdin_data = (

tests/test_cli.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,23 @@ def test_multiple_text_fields_with_same_field_name(self):
149149
]
150150

151151

152+
class TestIntermixedOptions:
153+
def test_output_option_after_url_keeps_request_items(self):
154+
r = http(
155+
'--offline',
156+
'--ignore-stdin',
157+
'post',
158+
'pie.dev/post',
159+
'-v',
160+
'header1:xyz',
161+
'x=1',
162+
)
163+
164+
assert r.exit_status == ExitStatus.SUCCESS
165+
assert 'header1: xyz' in r
166+
assert '"x": "1"' in r
167+
168+
152169
class TestQuerystring:
153170
def test_query_string_params_in_url(self, httpbin):
154171
r = http('--print=Hhb', 'GET', httpbin + '/get?a=1&b=2')

0 commit comments

Comments
 (0)