MCPcopy
hub / github.com/httpie/cli / test_valid_items

Method test_valid_items

tests/test_cli.py:74–128  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

72 }
73
74 def test_valid_items(self):
75 items = RequestItems.from_args([
76 self.key_value_arg('string=value'),
77 self.key_value_arg('Header:value'),
78 self.key_value_arg('Unset-Header:'),
79 self.key_value_arg('Empty-Header;'),
80 self.key_value_arg('list:=["a", 1, {}, false]'),
81 self.key_value_arg('obj:={"a": "b"}'),
82 self.key_value_arg(r'nested\[2\][a][]=1'),
83 self.key_value_arg('nested[2][a][]:=1'),
84 self.key_value_arg('ed='),
85 self.key_value_arg('bool:=true'),
86 self.key_value_arg('file@' + FILE_PATH_ARG),
87 self.key_value_arg('query==value'),
88 self.key_value_arg('Embedded-Header:@' + FILE_PATH_ARG),
89 self.key_value_arg('string-embed=@' + FILE_PATH_ARG),
90 self.key_value_arg('param-embed==@' + FILE_PATH_ARG),
91 self.key_value_arg('raw-json-embed:=@' + JSON_FILE_PATH_ARG),
92 ])
93
94 # Parsed headers
95 # `HTTPHeadersDict` => `dict`
96 headers = dict(items.headers)
97 assert headers == {
98 'Header': 'value',
99 'Unset-Header': None,
100 'Empty-Header': '',
101 'Embedded-Header': FILE_CONTENT.rstrip('\n')
102 }
103
104 # Parsed data
105 raw_json_embed = items.data.pop('raw-json-embed')
106 assert raw_json_embed == load_json_preserve_order_and_dupe_keys(JSON_FILE_CONTENT)
107 items.data['string-embed'] = items.data['string-embed'].strip()
108 assert dict(items.data) == {
109 'ed': '',
110 'string': 'value',
111 'bool': True,
112 'list': ['a', 1, load_json_preserve_order_and_dupe_keys('{}'), False],
113 'nested[2]': {'a': ['1']},
114 'nested': [None, None, {'a': [1]}],
115 'obj': load_json_preserve_order_and_dupe_keys('{"a": "b"}'),
116 'string-embed': FILE_CONTENT
117 }
118
119 # Parsed query string parameters
120 assert items.params == {
121 'query': 'value',
122 'param-embed': FILE_CONTENT.rstrip('\n')
123 }
124
125 # Parsed file fields
126 assert 'file' in items.files
127 assert (items.files['file'][1].read().strip().
128 decode() == FILE_CONTENT)
129
130 def test_multiple_file_fields_with_same_field_name(self):
131 items = RequestItems.from_args([

Callers

nothing calls this directly

Calls 3

from_argsMethod · 0.80
decodeMethod · 0.80

Tested by

no test coverage detected