11from __future__ import annotations
22
3+ import base64
34import datetime
45import inspect
56import textwrap
910from enum import Enum
1011from functools import lru_cache , partial
1112from itertools import chain , count
12- from logging import Logger , LogRecord
13- from math import e
13+ from logging import LogRecord
1414from typing import (
1515 TYPE_CHECKING ,
1616 Any ,
@@ -127,6 +127,7 @@ def prepare_request_data(kwargs: dict[str, Any]) -> PreparedRequestData:
127127 if key in get_request_signature ().parameters
128128 }
129129 request = requests .Request (** kwargs ).prepare ()
130+ # logger.debug("in prepare request data ", request.body)
130131 return PreparedRequestData (
131132 method = str (request .method ),
132133 url = str (request .url ),
@@ -351,15 +352,23 @@ def as_requests_kwargs(
351352
352353 if isinstance (self .body , dict ):
353354 # Create a new body without meta-data
354- new_body = {
355+ body_without_prefixed_field = {
355356 key : value
356357 for key , value in self .body .items ()
357358 if not key .startswith (VAS_KEY_PREFIX )
358359 }
359- self .metadata = {
360- f"{ key [len (VAS_KEY_PREFIX ) + 1 :]} " : value
361- for key , value in self .body .items ()
362- if key .startswith (VAS_KEY_PREFIX )
360+ if self .metadata == {}:
361+ self .metadata = {
362+ f"{ key [len (VAS_KEY_PREFIX ) + 1 :]} " : value
363+ for key , value in self .body .items ()
364+ if key .startswith (VAS_KEY_PREFIX )
365+ }
366+ new_body = {
367+ ** body_without_prefixed_field ,
368+ ** {
369+ k : obj ["image_name" ]
370+ for k , obj in self .metadata .items ()
371+ }
363372 }
364373 self .body = new_body
365374
@@ -409,7 +418,8 @@ def as_requests_kwargs(
409418 "deps/schemathesis/src/schemathesis/models.py -> new extra: %s" , new_extra
410419 )
411420
412- additional_headers = extra .pop ("headers" , None )
421+ additional_headers = new_extra .pop ("headers" , None )
422+ # additional_headers = extra.pop("headers", None)
413423 if additional_headers :
414424 # Additional headers, needed for the serializer
415425 for key , value in additional_headers .items ():
@@ -421,6 +431,7 @@ def as_requests_kwargs(
421431 "headers" : final_headers ,
422432 "params" : self .query ,
423433 ** new_extra ,
434+ # **extra,
424435 }
425436
426437 def call (
@@ -863,6 +874,7 @@ def as_strategy(
863874 ) -> st .SearchStrategy :
864875 """Turn this API operation into a Hypothesis strategy."""
865876
877+ logger .debug ("deps/schemathesis/src/schemathesis/models.py: as_strategy -> kwargs: %s" , kwargs )
866878 # Cai nay quan trong cuc ki
867879 strategy = self .schema .get_case_strategy (
868880 self ,
@@ -1054,12 +1066,17 @@ def from_case(cls, case: Case, session: requests.Session) -> Request:
10541066 base_url = case .get_full_base_url ()
10551067 kwargs = case .as_requests_kwargs (base_url )
10561068 request = requests .Request (** kwargs )
1069+ # logger.debug("deps/schemathesis/src/schemathesis/models.py: from_case in Request -> request: %s", request)
10571070 prepared = session .prepare_request (request )
10581071 return cls .from_prepared_request (prepared )
10591072
10601073 @classmethod
10611074 def from_prepared_request (cls , prepared : requests .PreparedRequest ) -> Request :
10621075 """A prepared request version is already stored in `requests.Response`."""
1076+ logger .debug (
1077+ "deps/schemathesis/src/schemathesis/models.py: from_prepared_request in Request -> body: %s" ,
1078+ prepared .body ,
1079+ )
10631080 body = prepared .body
10641081 if isinstance (body , str ):
10651082 # can be a string for `application/x-www-form-urlencoded`
@@ -1172,6 +1189,15 @@ def from_requests(
11721189 status : Status ,
11731190 checks : list [Check ],
11741191 ) -> Interaction :
1192+
1193+ logger .debug (
1194+ "deps/schemathesis/src/schemathesis/models.py: from_requests in Interaction -> response.request.body: %s" ,
1195+ response .request .body ,
1196+ )
1197+ logger .debug (
1198+ "deps/schemathesis/src/schemathesis/models.py: from_requests in Interaction -> case.body: %s" ,
1199+ case .body ,
1200+ )
11751201 return cls (
11761202 request = Request .from_prepared_request (response .request ),
11771203 response = Response .from_requests (response ),
@@ -1198,6 +1224,7 @@ def from_wsgi(
11981224 session = requests .Session ()
11991225 session .headers .update (headers )
12001226 return cls (
1227+ case = case ,
12011228 request = Request .from_case (case , session ),
12021229 response = Response .from_wsgi (response , elapsed ),
12031230 status = status ,
0 commit comments