def test_request_with_post_data(self):
        request = Request(method="POST",
                          url="http://example.com/form",
                          http_version="HTTP/1.0",
                          post_data=PostData(mime_type="multipart/form-data",
                                             params=[
                                                 PostParam(name="user",
                                                           value="anonymous1"),
                                             ]))

        self.assertEqual(
            request.dump().data["postData"], {
                "mimeType":
                "multipart/form-data",
                "params": [
                    {
                        "name": "user",
                        "value": "anonymous1",
                        "fileName": None,
                        "contentType": None,
                        "comment": ""
                    },
                ],
                "text":
                "",
                "comment":
                "",
            })
 def test_request_with_headers(self):
     request = Request(
         method="GET",
         url="http://example.com/",
         http_version="HTTP/1.0",
         headers=[Header(name="Accept-Language", value="en-US; *")])
     self.assertEqual(request.dump().data["headers"][0], {
         "name": "Accept-Language",
         "value": "en-US; *",
         "comment": "",
     })
 def test_request_with_cookie(self):
     request = Request(method="GET",
                       url="http://example.com/",
                       http_version="HTTP/1.0",
                       cookies=[Cookie(name="PHPSESSID", value="12341234")])
     self.assertEqual(
         request.dump().data["cookies"][0], {
             "name": "PHPSESSID",
             "value": "12341234",
             "path": None,
             "domain": None,
             "expires": None,
             "httpOnly": False,
             "secure": False,
             "comment": "",
         })
    def test_base_entry(self):
        self.maxDiff = 5000
        entry = Entry(request=Request(method="GET", url="http://example.com/"))
        out = entry.dump().data

        self.assertEqual(
            out, {
                "pageref": None,
                "startedDateTime": None,
                "time": -1,
                "request": {
                    "method": "GET",
                    "url": "http://example.com/",
                    "httpVersion": "HTTP/1.0",
                    "headerSize": -1,
                    "bodySize": -1,
                    "cookies": [],
                    "headers": [],
                    "queryString": [],
                    "postData": unittest.mock.ANY,
                    "comment": "",
                },
                "response": None,
                "cache": None,
                "timings": None,
                "serverIPAddress": None,
                "connection": None,
                "comment": "",
            })
 def test_minimal_request(self):
     request = Request(method="GET",
                       url="http://example.com/",
                       http_version="HTTP/1.0")
     self.assertEqual(
         request.dump().data, {
             "method": "GET",
             "url": "http://example.com/",
             "httpVersion": "HTTP/1.0",
             "headerSize": -1,
             "bodySize": -1,
             "cookies": [],
             "headers": [],
             "queryString": [],
             "postData": {
                 "comment": "",
                 "mimeType": None,
                 "text": "",
                 "params": []
             },
             "comment": "",
         })
 def test_query_string_in_request(self):
     input = {
         "method": "GET",
         "url": "http://example.com/",
         "httpVersion": "HTTP/1.0",
         "headerSize": -1,
         "bodySize": -1,
         "queryString": [
             {
                 "name": "a",
                 "value": "1"
             },
         ],
         "headers": [],
         "postData": {},
         "comment": "",
     }
     obj, errors = Request.load(input)
     self.assertEqual(obj.query_string[0], Param(name="a", value="1"))
    def test_preserve_extended_attributes(self):
        input = {
            "method": "GET",
            "url": "http://example.com/",
            "httpVersion": "HTTP/1.0",
            "headerSize": -1,
            "bodySize": -1,
            "cookies": [],
            "headers": [],
            "queryString": [],
            "postData": {},
            "comment": "",
            "_extended": "Hello",
            "_anything": {
                "test": "Hello World!"
            },
        }
        intermediate = Request.load(input).data
        out = intermediate.dump().data

        self.assertEqual({"test": "Hello World!"}, out["_anything"])
 def test_request_without_post_data_initializes_object(self):
     request = Request(method="POST",
                       url="http://example.com/form",
                       http_version="HTTP/1.0")
     self.assertEqual(request.post_data.text, "")