|
@@ -48,7 +48,7 @@ def test_executor_with_json_body_and_number_variable():
|
|
|
assert executor.method == "post"
|
|
|
assert executor.url == "https://api.example.com/data"
|
|
|
assert executor.headers == {"Content-Type": "application/json"}
|
|
|
- assert executor.params == {}
|
|
|
+ assert executor.params == []
|
|
|
assert executor.json == {"number": 42}
|
|
|
assert executor.data is None
|
|
|
assert executor.files is None
|
|
@@ -101,7 +101,7 @@ def test_executor_with_json_body_and_object_variable():
|
|
|
assert executor.method == "post"
|
|
|
assert executor.url == "https://api.example.com/data"
|
|
|
assert executor.headers == {"Content-Type": "application/json"}
|
|
|
- assert executor.params == {}
|
|
|
+ assert executor.params == []
|
|
|
assert executor.json == {"name": "John Doe", "age": 30, "email": "john@example.com"}
|
|
|
assert executor.data is None
|
|
|
assert executor.files is None
|
|
@@ -156,7 +156,7 @@ def test_executor_with_json_body_and_nested_object_variable():
|
|
|
assert executor.method == "post"
|
|
|
assert executor.url == "https://api.example.com/data"
|
|
|
assert executor.headers == {"Content-Type": "application/json"}
|
|
|
- assert executor.params == {}
|
|
|
+ assert executor.params == []
|
|
|
assert executor.json == {"object": {"name": "John Doe", "age": 30, "email": "john@example.com"}}
|
|
|
assert executor.data is None
|
|
|
assert executor.files is None
|
|
@@ -195,7 +195,7 @@ def test_extract_selectors_from_template_with_newline():
|
|
|
variable_pool=variable_pool,
|
|
|
)
|
|
|
|
|
|
- assert executor.params == {"test": "line1\nline2"}
|
|
|
+ assert executor.params == [("test", "line1\nline2")]
|
|
|
|
|
|
|
|
|
def test_executor_with_form_data():
|
|
@@ -244,7 +244,7 @@ def test_executor_with_form_data():
|
|
|
assert executor.url == "https://api.example.com/upload"
|
|
|
assert "Content-Type" in executor.headers
|
|
|
assert "multipart/form-data" in executor.headers["Content-Type"]
|
|
|
- assert executor.params == {}
|
|
|
+ assert executor.params == []
|
|
|
assert executor.json is None
|
|
|
assert executor.files is None
|
|
|
assert executor.content is None
|
|
@@ -265,3 +265,72 @@ def test_executor_with_form_data():
|
|
|
assert "Hello, World!" in raw_request
|
|
|
assert "number_field" in raw_request
|
|
|
assert "42" in raw_request
|
|
|
+
|
|
|
+
|
|
|
+def test_init_headers():
|
|
|
+ def create_executor(headers: str) -> Executor:
|
|
|
+ node_data = HttpRequestNodeData(
|
|
|
+ title="test",
|
|
|
+ method="get",
|
|
|
+ url="http://example.com",
|
|
|
+ headers=headers,
|
|
|
+ params="",
|
|
|
+ authorization=HttpRequestNodeAuthorization(type="no-auth"),
|
|
|
+ )
|
|
|
+ timeout = HttpRequestNodeTimeout(connect=10, read=30, write=30)
|
|
|
+ return Executor(node_data=node_data, timeout=timeout, variable_pool=VariablePool())
|
|
|
+
|
|
|
+ executor = create_executor("aa\n cc:")
|
|
|
+ executor._init_headers()
|
|
|
+ assert executor.headers == {"aa": "", "cc": ""}
|
|
|
+
|
|
|
+ executor = create_executor("aa:bb\n cc:dd")
|
|
|
+ executor._init_headers()
|
|
|
+ assert executor.headers == {"aa": "bb", "cc": "dd"}
|
|
|
+
|
|
|
+ executor = create_executor("aa:bb\n cc:dd\n")
|
|
|
+ executor._init_headers()
|
|
|
+ assert executor.headers == {"aa": "bb", "cc": "dd"}
|
|
|
+
|
|
|
+ executor = create_executor("aa:bb\n\n cc : dd\n\n")
|
|
|
+ executor._init_headers()
|
|
|
+ assert executor.headers == {"aa": "bb", "cc": "dd"}
|
|
|
+
|
|
|
+
|
|
|
+def test_init_params():
|
|
|
+ def create_executor(params: str) -> Executor:
|
|
|
+ node_data = HttpRequestNodeData(
|
|
|
+ title="test",
|
|
|
+ method="get",
|
|
|
+ url="http://example.com",
|
|
|
+ headers="",
|
|
|
+ params=params,
|
|
|
+ authorization=HttpRequestNodeAuthorization(type="no-auth"),
|
|
|
+ )
|
|
|
+ timeout = HttpRequestNodeTimeout(connect=10, read=30, write=30)
|
|
|
+ return Executor(node_data=node_data, timeout=timeout, variable_pool=VariablePool())
|
|
|
+
|
|
|
+ # Test basic key-value pairs
|
|
|
+ executor = create_executor("key1:value1\nkey2:value2")
|
|
|
+ executor._init_params()
|
|
|
+ assert executor.params == [("key1", "value1"), ("key2", "value2")]
|
|
|
+
|
|
|
+ # Test empty values
|
|
|
+ executor = create_executor("key1:\nkey2:")
|
|
|
+ executor._init_params()
|
|
|
+ assert executor.params == [("key1", ""), ("key2", "")]
|
|
|
+
|
|
|
+ # Test duplicate keys (which is allowed for params)
|
|
|
+ executor = create_executor("key1:value1\nkey1:value2")
|
|
|
+ executor._init_params()
|
|
|
+ assert executor.params == [("key1", "value1"), ("key1", "value2")]
|
|
|
+
|
|
|
+ # Test whitespace handling
|
|
|
+ executor = create_executor(" key1 : value1 \n key2 : value2 ")
|
|
|
+ executor._init_params()
|
|
|
+ assert executor.params == [("key1", "value1"), ("key2", "value2")]
|
|
|
+
|
|
|
+ # Test empty lines and extra whitespace
|
|
|
+ executor = create_executor("key1:value1\n\nkey2:value2\n\n")
|
|
|
+ executor._init_params()
|
|
|
+ assert executor.params == [("key1", "value1"), ("key2", "value2")]
|