Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -702,6 +702,18 @@ def request_parameter_with_value(context, name, value, path_parameters):
path_parameters[param_name] = json.loads(tpl)


@given(parsers.parse('the request and response use "{compression}" compression'))
def request_and_response_use_compression(compression):
"""Defer request and response compression to the generated replay server."""
assert compression


@given(parsers.parse('the client selects "{compression}" compression'))
def client_selects_compression(compression):
"""Pass the selected compression from the generated request plan."""
assert compression


def assert_no_unparsed(data):
if isinstance(data, list):
for item in data:
Expand Down Expand Up @@ -732,6 +744,9 @@ def prepare_test_runner_request(context, client, api_version, request, path_para
body = _materialize_test_value(request_plan["body"]["value"], context)
api_request["kwargs"]["body"] = json.dumps(body)

if request_plan.get("selected_compression") is not None:
api_request["kwargs"]["content_encoding"] = json.dumps(request_plan["selected_compression"])

for parameter in request_plan["parameters"]:
source = parameter["source"]
if source["type"] == "fixture":
Expand Down
28 changes: 28 additions & 0 deletions tests/generated-test/test-runner-data/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -1211,6 +1211,20 @@
"scenario": "Search test logs returns \"OK\" response",
"version": "v1"
},
{
"feature": "Logs",
"feature_file": "../../v1/features/logs.feature",
"file": "v1/logs/send-deflate-logs-returns-response-from-server-always-200-empty-json-response.json",
"scenario": "Send deflate logs returns \"Response from server (always 200 empty JSON).\" response",
"version": "v1"
},
{
"feature": "Logs",
"feature_file": "../../v1/features/logs.feature",
"file": "v1/logs/send-gzip-logs-returns-response-from-server-always-200-empty-json-response.json",
"scenario": "Send gzip logs returns \"Response from server (always 200 empty JSON).\" response",
"version": "v1"
},
{
"feature": "Logs",
"feature_file": "../../v1/features/logs.feature",
Expand Down Expand Up @@ -6391,6 +6405,20 @@
"scenario": "Search logs returns \"OK\" response with pagination",
"version": "v2"
},
{
"feature": "Logs",
"feature_file": "../../v2/features/logs.feature",
"file": "v2/logs/send-deflate-logs-returns-request-accepted-for-processing-always-202-empty-json-response.json",
"scenario": "Send deflate logs returns \"Request accepted for processing (always 202 empty JSON).\" response",
"version": "v2"
},
{
"feature": "Logs",
"feature_file": "../../v2/features/logs.feature",
"file": "v2/logs/send-gzip-logs-returns-request-accepted-for-processing-always-202-empty-json-response.json",
"scenario": "Send gzip logs returns \"Request accepted for processing (always 202 empty JSON).\" response",
"version": "v2"
},
{
"feature": "Logs",
"feature_file": "../../v2/features/logs.feature",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"api": "Logs",
"expected_status": 200,
"feature": "Logs",
"id": "v1/Logs/Send deflate logs returns \"Response from server (always 200 empty JSON).\" response",
"operation_id": "SubmitLog",
"request": {
"body": {
"schema": {
"format": null,
"items": {
"format": null,
"ref": "HTTPLogItem",
"type": "object"
},
"ref": "HTTPLog",
"type": "array"
},
"source": "inline",
"value": [
{
"ddtags": "host:{{ unique_alnum }}",
"message": "{{ unique }}"
}
]
},
"compression": "deflate",
"content_type": "application/json",
"method": "POST",
"pagination": false,
"parameters": [],
"path": "/v1/input",
"selected_compression": "deflate"
},
"scenario": "Send deflate logs returns \"Response from server (always 200 empty JSON).\" response",
"schema_version": 1,
"version": "v1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"api": "Logs",
"expected_status": 200,
"feature": "Logs",
"id": "v1/Logs/Send gzip logs returns \"Response from server (always 200 empty JSON).\" response",
"operation_id": "SubmitLog",
"request": {
"body": {
"schema": {
"format": null,
"items": {
"format": null,
"ref": "HTTPLogItem",
"type": "object"
},
"ref": "HTTPLog",
"type": "array"
},
"source": "inline",
"value": [
{
"ddtags": "host:{{ unique_alnum }}",
"message": "{{ unique }}"
}
]
},
"compression": "gzip",
"content_type": "application/json",
"method": "POST",
"pagination": false,
"parameters": [],
"path": "/v1/input",
"selected_compression": "gzip"
},
"scenario": "Send gzip logs returns \"Response from server (always 200 empty JSON).\" response",
"schema_version": 1,
"version": "v1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"api": "Logs",
"expected_status": 202,
"feature": "Logs",
"id": "v2/Logs/Send deflate logs returns \"Request accepted for processing (always 202 empty JSON).\" response",
"operation_id": "SubmitLog",
"request": {
"body": {
"schema": {
"format": null,
"items": {
"format": null,
"ref": "HTTPLogItem",
"type": "object"
},
"ref": "HTTPLog",
"type": "array"
},
"source": "inline",
"value": [
{
"ddsource": "nginx",
"ddtags": "env:staging,version:5.1",
"hostname": "i-012345678",
"message": "2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World",
"service": "payment"
}
]
},
"compression": "deflate",
"content_type": "application/json",
"method": "POST",
"pagination": false,
"parameters": [],
"path": "/api/v2/logs",
"selected_compression": "deflate"
},
"scenario": "Send deflate logs returns \"Request accepted for processing (always 202 empty JSON).\" response",
"schema_version": 1,
"version": "v2"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"api": "Logs",
"expected_status": 202,
"feature": "Logs",
"id": "v2/Logs/Send gzip logs returns \"Request accepted for processing (always 202 empty JSON).\" response",
"operation_id": "SubmitLog",
"request": {
"body": {
"schema": {
"format": null,
"items": {
"format": null,
"ref": "HTTPLogItem",
"type": "object"
},
"ref": "HTTPLog",
"type": "array"
},
"source": "inline",
"value": [
{
"ddsource": "nginx",
"ddtags": "env:staging,version:5.1",
"hostname": "i-012345678",
"message": "2019-11-19T14:37:58,995 INFO [process.name][20081] Hello World",
"service": "payment"
}
]
},
"compression": "gzip",
"content_type": "application/json",
"method": "POST",
"pagination": false,
"parameters": [],
"path": "/api/v2/logs",
"selected_compression": "gzip"
},
"scenario": "Send gzip logs returns \"Request accepted for processing (always 202 empty JSON).\" response",
"schema_version": 1,
"version": "v2"
}
Loading
Loading