Skip to content

Commit 6fe17a0

Browse files
committed
refactor: remove prefix field from new_body
1 parent 83bca44 commit 6fe17a0

File tree

2 files changed

+27
-34
lines changed

2 files changed

+27
-34
lines changed

src/schemathesis/models.py

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -352,17 +352,24 @@ def as_requests_kwargs(
352352

353353
if isinstance(self.body, dict):
354354
# Create a new body without meta-data
355-
# new_body = {
356-
# key: value
357-
# for key, value in self.body.items()
358-
# if not key.startswith(VAS_KEY_PREFIX)
359-
# }
355+
body_without_prefixed_field = {
356+
key: value
357+
for key, value in self.body.items()
358+
if not key.startswith(VAS_KEY_PREFIX)
359+
}
360360
self.metadata = {
361361
f"{key[len(VAS_KEY_PREFIX) + 1:]}": value
362362
for key, value in self.body.items()
363363
if key.startswith(VAS_KEY_PREFIX)
364364
}
365-
# self.body = new_body
365+
new_body = {
366+
**body_without_prefixed_field,
367+
**{
368+
k: obj["image_name"]
369+
for k, obj in self.metadata.items()
370+
}
371+
}
372+
self.body = new_body
366373

367374
logger.debug(
368375
"deps/schemathesis/src/schemathesis/models.py: new body: %s", self.body
@@ -411,6 +418,7 @@ def as_requests_kwargs(
411418
)
412419

413420
additional_headers = new_extra.pop("headers", None)
421+
# additional_headers = extra.pop("headers", None)
414422
if additional_headers:
415423
# Additional headers, needed for the serializer
416424
for key, value in additional_headers.items():
@@ -422,6 +430,7 @@ def as_requests_kwargs(
422430
"headers": final_headers,
423431
"params": self.query,
424432
**new_extra,
433+
# **extra,
425434
}
426435

427436
def call(
@@ -864,6 +873,7 @@ def as_strategy(
864873
) -> st.SearchStrategy:
865874
"""Turn this API operation into a Hypothesis strategy."""
866875

876+
logger.debug("deps/schemathesis/src/schemathesis/models.py: as_strategy -> kwargs: %s", kwargs)
867877
# Cai nay quan trong cuc ki
868878
strategy = self.schema.get_case_strategy(
869879
self,
@@ -1187,27 +1197,6 @@ def from_requests(
11871197
"deps/schemathesis/src/schemathesis/models.py: from_requests in Interaction -> case.body: %s",
11881198
case.body,
11891199
)
1190-
# new_request: Request = Request.from_prepared_request(response.request)
1191-
# if case.metadata is not None and new_request.body is not None:
1192-
# logger.debug("deps/schemathesis/src/schemathesis/models.py: from_requests in Interaction -> request.body: %s", base64.b64decode(new_request.body))
1193-
# for key in case.metadata:
1194-
# if isinstance(case.body, dict) and key in case.body:
1195-
# logger.debug("")
1196-
# case.body[key] = case.metadata[key]["image_name"]
1197-
# logger.debug("deps/schemathesis/src/schemathesis/models.py: from_requests in Interaction -> %s", case.body)
1198-
# new_request.body = base64.b64encode(str(case.body).encode("utf-8")).decode("utf-8")
1199-
1200-
# Remove image data from the request body and replace it with the image name
1201-
# if new_request.body is not None:
1202-
# # logger.debug("deps/schemathesis/src/schemathesis/models.py: from_requests in Interaction -> %s", base64.b64decode(Request.from_prepared_request(response.request).body))
1203-
# base64_body = base64.b64decode(Request.from_prepared_request(response.request).body)
1204-
# if b"filename" in base64_body:
1205-
# start = base64_body.find(b"\r\n\r\n", base64_body.find(b"filename"), ) + 4
1206-
# end_of_image_name = base64_body.find(b"\r\n", base64_body.find(b"filename"), )
1207-
# image_name = base64_body[base64_body.find(b"filename") + 10:end_of_image_name]
1208-
# end = base64_body.find(b"\r\n--", start, )
1209-
# request_body = base64_body[:start] + image_name + base64_body[end:]
1210-
# new_request.body = base64.b64encode(request_body).decode("utf-8")
12111200
return cls(
12121201
request=Request.from_prepared_request(response.request),
12131202
response=Response.from_requests(response),

src/schemathesis/runner/impl/core.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -792,15 +792,15 @@ def _network_test(
792792
run_targets(targets, context)
793793
status = Status.success
794794
try:
795-
#logger.debug("kwargs in core.py: %s", kwargs)
795+
# logger.debug("kwargs in core.py: %s", kwargs)
796796
requests_kwargs = case.as_requests_kwargs(
797797
base_url=case.get_full_base_url(), headers=headers
798798
)
799799
if 'files' in requests_kwargs:
800-
existing_tuple = requests_kwargs['files'][0]
800+
# existing_tuple = requests_kwargs['files'][0]
801801
#logger.debug("existing tuple in kwargs in core.py: %s", existing_tuple)
802802

803-
if case.metadata is not None:
803+
if case.metadata != {}:
804804
for i, (key, value) in enumerate(requests_kwargs['files']):
805805
# Check if the key is in metadata
806806
if key in case.metadata:
@@ -817,11 +817,15 @@ def _network_test(
817817
# requests_kwargs['files'][0][1] = case.metadata['image_name']
818818
#logger.debug("files in kwargs in core.py: %s", requests_kwargs['files'][0][1])
819819
#logger.debug("request_kargs in core.py: %s", requests_kwargs)
820-
old_content_length = response.request.headers.get('Content-Length', '0')
821-
#logger.debug("old request content length in core.py: %s", old_content_length)
820+
### Create new request but reserve old content length
821+
# old_content_length = response.request.headers.get('Content-Length')
822+
# #logger.debug("old request content length in core.py: %s", old_content_length)
823+
# request = requests.Request(**requests_kwargs).prepare()
824+
# #logger.debug("request content length in core.py: %s", request.headers.get('Content-Length'))
825+
# request.headers['Content-Length'] = old_content_length # type: ignore
826+
827+
### Create new request with new content length
822828
request = requests.Request(**requests_kwargs).prepare()
823-
#logger.debug("request content length in core.py: %s", request.headers.get('Content-Length'))
824-
request.headers['Content-Length'] = old_content_length # type: ignore
825829
#logger.debug("new request content length in core.py: %s", request.headers.get('Content-Length'))
826830
response.request = request
827831
#logger.debug("case in core.py: %s", case.body)

0 commit comments

Comments
 (0)