1
0
mirror of https://github.com/httpie/cli.git synced 2025-08-10 22:42:05 +02:00

Added --unsorted

It acts as a shortcut for --format-options=json.sort_keys:false,headers.sort:false

#128
This commit is contained in:
Jakub Roztocil
2020-06-16 12:20:13 +02:00
parent b86598886e
commit 826489950d
6 changed files with 103 additions and 14 deletions

View File

@@ -6,7 +6,12 @@ from urllib.request import urlopen
import pytest
from httpie.cli.argtypes import parse_format_options
from httpie.cli.constants import DEFAULT_FORMAT_OPTIONS
from httpie.cli.definition import parser
from httpie.cli.argtypes import (
PARSED_DEFAULT_FORMAT_OPTIONS,
parse_format_options,
)
from httpie.output.formatters.colors import get_lexer
from httpie.status import ExitStatus
from utils import COLOR, CRLF, HTTP_OK, MockEnvironment, http
@@ -249,3 +254,55 @@ class TestFormatOptions:
}
with pytest.raises(argparse.ArgumentTypeError, match=expected_error):
parse_format_options(s=options_string, defaults=defaults)
@pytest.mark.parametrize(
argnames=['args', 'expected_format_options'],
argvalues=[
(
[
'--format-options',
'headers.sort:false,json.sort_keys:false',
'--format-options=json.indent:10'
],
{
'headers': {'sort': False},
'json': {'sort_keys': False, 'indent': 10, 'format': True},
}
),
(
[
'--unsorted'
],
{
'headers': {'sort': False},
'json': {'sort_keys': False, 'indent': 4, 'format': True},
}
),
(
[
'--format-options=headers.sort:true',
'--unsorted',
'--format-options=headers.sort:true',
],
{
'headers': {'sort': True},
'json': {'sort_keys': False, 'indent': 4, 'format': True},
}
),
(
[
'--no-format-options', # --no-<option> anywhere resets
'--format-options=headers.sort:true',
'--unsorted',
'--format-options=headers.sort:true',
],
PARSED_DEFAULT_FORMAT_OPTIONS,
),
],
)
def test_format_options_accumulation(self, args, expected_format_options):
parsed_args = parser.parse_args(
args=[*args, 'example.org'],
env=MockEnvironment(),
)
assert parsed_args.format_options == expected_format_options