@@ -51,28 +51,23 @@ class Response:
5151@dataclass
5252class ResponseConfig :
5353 path : str
54- disconnect_after_headers = False
54+ request : Optional [object ] = None # Add request as a field
55+ disconnect_after_headers : bool = False
5556 generate_body_size : Optional [int ] = None
56- json_path : str = None
57+ json_path : Optional [ str ] = None
5758 forced_throttle : bool = False
5859 force_retry : bool = False
59- should_skip_wait = False
60+ should_skip_wait : bool = False
6061 request_headers : Optional [List [Tuple [bytes , bytes ]]] = None
6162
62- def __init__ (self , path , request = None ):
63- self .path = path
64- self .request_headers = request .headers
65- self .json_path = None
66- self .generate_body_size = None
67- self .disconnect_after_headers = False
68- self .forced_throttle = False
69- self .force_retry = False
70- self .should_skip_wait = False
71-
72- if get_request_header_value (request , "before_finish" ) is not None :
73- self .should_skip_wait = True
74- if get_request_header_value (request , "force_throttle" ) is not None :
75- self .forced_throttle = True
63+ def __post_init__ (self ):
64+ """Called automatically after the dataclass __init__"""
65+ if self .request is not None :
66+ self .request_headers = self .request .headers
67+ if get_request_header_value (self .request , "before_finish" ) is not None :
68+ self .should_skip_wait = True
69+ if get_request_header_value (self .request , "force_throttle" ) is not None :
70+ self .forced_throttle = True
7671
7772 def _resolve_file_path (self , wrapper , request_type ):
7873 global SHOULD_THROTTLE
@@ -504,7 +499,7 @@ async def handle_mock_s3_request(wrapper, request):
504499 request_type = S3Opts .CreateMultipartUpload
505500
506501 if response_config is None :
507- response_config = ResponseConfig (parsed_path .path , request )
502+ response_config = ResponseConfig (parsed_path .path , request = request )
508503
509504 if not response_config .should_skip_wait :
510505 while True :
0 commit comments