ReqRespBunch


source

ReqRespBunch

 ReqRespBunch (reqs_lis:List[ForwardRef('FastRequest.RestReqFactory.RestRe
               qFactory')]=None)

given reqs_lis of type RestReqFactory, itcreates response and kwargs for each element of list
provides factorey method for getter as well as setter forthe respnse and kwargs set for each request

Type Default Details
reqs_lis List None list of RestReqFactory
# Create the RestReqFactory instance
req1 = RestReqFactory(
    method="GET",
    url_provider= lambda: f"{get_env('url1')}/get",
    params_provider= lambda : {
        "foo1": f"{get_env('foo1')}",
        "foo2": f"{get_env('foo2')}",
    }
)
req2 = RestReqFactory(
    method="GET",
    url_provider= lambda : f"{get_env('url2')}/api/users/2",
)
reqs = ReqRespBunch([req1, req2])
len(reqs)
2
req1()
{
    "method": "GET",
    "url": "/get",
    "headers": "None",
    "params": {
        "foo1": "",
        "foo2": ""
    },
    "body": "None",
    "kwargs": "None"
}
set_env('foo1', 'foo1')
set_env('foo2', 'foo2')
set_env('url1', 'https://postman-echo.com')
set_env('url2', 'https://reqres.in')

Response.__str__

 Response.__str__ ()

monkey patch the str of the repsone object


Response.__repr__

 Response.__repr__ ()

monkey patch the repr of the repsone object

resp = req1()()
type(resp)
requests.models.Response
reqs.set_resp(0, req1()())
reqs.set_resp(1, req2()())

Printing requset and response in a pair in json format

reqs.print_req_resp
[{'request': {
      "method": "GET",
      "url": "https://postman-echo.com/get",
      "headers": "None",
      "params": {
          "foo1": "foo1",
          "foo2": "foo2"
      },
      "body": "None",
      "kwargs": "None"
  },
  'response': {
      "url": "https://postman-echo.com/get?foo1=foo1&foo2=foo2",
      "status": 200,
      "headers": {
          "Date": "Mon, 10 Jun 2024 14:31:51 GMT",
          "Content-Type": "application/json; charset=utf-8",
          "Content-Length": "512",
          "Connection": "close",
          "Server": "nginx/1.25.3",
          "ETag": "W/\"200-3Jb3WQoBKDrr9SPJsIdfXrK4rlY\"",
          "set-cookie": "sails.sid=s%3A5xSPUWYL9dBQ2vDPzrHJgPTl4ULeKY6x.vDQ%2F42S8EmWnOswcfTV8dh0lr0Be6Z9mxokjmKw1uF4; Path=/; HttpOnly"
      },
      "cookies": {
          "sails.sid": "s%3A5xSPUWYL9dBQ2vDPzrHJgPTl4ULeKY6x.vDQ%2F42S8EmWnOswcfTV8dh0lr0Be6Z9mxokjmKw1uF4"
      },
      "elapsed": "0:00:00.930238",
      "text": "{\n  \"args\": {\n    \"foo1\": \"foo1\",\n    \"foo2\": \"foo2\"\n  },\n  \"headers\": {\n    \"host\": \"postman-echo.com\",\n    \"x-forwarded-proto\": \"http\",\n    \"x-request-start\": \"t=1718029911.264\",\n    \"connection\": \"close\",\n    \"content-length\": \"4\",\n    \"x-forwarded-port\": \"443\",\n    \"x-amzn-trace-id\": \"Root=1-66670e57-0df8c3b639c5022119b8e6b4\",\n    \"user-agent\": \"python-requests/2.31.0\",\n    \"accept-encoding\": \"gzip, deflate, br, zstd\",\n    \"accept\": \"*/*\"\n  },\n  \"url\": \"http://postman-echo.com/get?foo1=foo1&foo2=foo2\"\n}",
      "json": {
          "args": {
              "foo1": "foo1",
              "foo2": "foo2"
          },
          "headers": {
              "host": "postman-echo.com",
              "x-forwarded-proto": "http",
              "x-request-start": "t=1718029911.264",
              "connection": "close",
              "content-length": "4",
              "x-forwarded-port": "443",
              "x-amzn-trace-id": "Root=1-66670e57-0df8c3b639c5022119b8e6b4",
              "user-agent": "python-requests/2.31.0",
              "accept-encoding": "gzip, deflate, br, zstd",
              "accept": "*/*"
          },
          "url": "http://postman-echo.com/get?foo1=foo1&foo2=foo2"
      }
  }},
 {'request': {
      "method": "GET",
      "url": "https://reqres.in/api/users/2",
      "headers": "None",
      "params": "None",
      "body": "None",
      "kwargs": "None"
  },
  'response': {
      "url": "https://reqres.in/api/users/2",
      "status": 200,
      "headers": {
          "Date": "Mon, 10 Jun 2024 14:31:51 GMT",
          "Content-Type": "application/json; charset=utf-8",
          "Transfer-Encoding": "chunked",
          "Connection": "keep-alive",
          "Report-To": "{\"group\":\"heroku-nel\",\"max_age\":3600,\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?ts=1717982629&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&s=lXZMDeKE85MA1YyOKCZa1pmXURer%2FzktaUHsw9%2FB3ps%3D\"}]}",
          "Reporting-Endpoints": "heroku-nel=https://nel.heroku.com/reports?ts=1717982629&sid=c4c9725f-1ab0-44d8-820f-430df2718e11&s=lXZMDeKE85MA1YyOKCZa1pmXURer%2FzktaUHsw9%2FB3ps%3D",
          "Nel": "{\"report_to\":\"heroku-nel\",\"max_age\":3600,\"success_fraction\":0.005,\"failure_fraction\":0.05,\"response_headers\":[\"Via\"]}",
          "X-Powered-By": "Express",
          "Access-Control-Allow-Origin": "*",
          "Etag": "W/\"118-pbdwwFo9SKNhD3Lx5iHJyngpq00\"",
          "Via": "1.1 vegur",
          "Cache-Control": "max-age=14400",
          "CF-Cache-Status": "HIT",
          "Age": "3711",
          "Vary": "Accept-Encoding",
          "Server": "cloudflare",
          "CF-RAY": "891a1142d90385ba-BOM",
          "Content-Encoding": "br"
      },
      "cookies": {},
      "elapsed": "0:00:00.119574",
      "text": "{\"data\":{\"id\":2,\"email\":\"janet.weaver@reqres.in\",\"first_name\":\"Janet\",\"last_name\":\"Weaver\",\"avatar\":\"https://reqres.in/img/faces/2-image.jpg\"},\"support\":{\"url\":\"https://reqres.in/#support-heading\",\"text\":\"To keep ReqRes free, contributions towards server costs are appreciated!\"}}",
      "json": {
          "data": {
              "id": 2,
              "email": "janet.weaver@reqres.in",
              "first_name": "Janet",
              "last_name": "Weaver",
              "avatar": "https://reqres.in/img/faces/2-image.jpg"
          },
          "support": {
              "url": "https://reqres.in/#support-heading",
              "text": "To keep ReqRes free, contributions towards server costs are appreciated!"
          }
      }
  }}]