コード例 #1
0
    def test_to_string(self):
        request = MappingRequest(
            None,
            None,
            {
                "url": "login",
                "headers": {
                    "Content-Type":
                    "application/x-www-form-urlencoded; charset=UTF-8",
                },
                "form_fields": {
                    "username": "******",
                },
                "method": "post",
                "body": "Hello World!",
            },
        )

        request_str = request.__str__()

        self.assertIn("ID:", request_str)
        self.assertIn("Scenario:", request_str)
        self.assertIn("URL:", request_str)
        self.assertIn("Method:", request_str)
        self.assertIn("Header:", request_str)
        self.assertIn("Body:", request_str)
        self.assertIn("Form Fields:", request_str)
        self.assertIn("Query String:", request_str)
コード例 #2
0
    def test_equal_to_url(self):
        request_1 = MappingRequest(None, None, {"url": ".*1/2.*"})
        request_2 = MappingRequest(None, None, {"url": ".*1/2.*"})
        self.assertEqual(request_1, request_2)

        request_2 = MappingRequest(None, None, {"url": ".*1/2/3.*"})
        self.assertEqual(request_1, request_2)

        request_1 = MappingRequest(None, None, {"url": ".*1/2/3.*"})
        request_2 = MappingRequest(None, None, {"url": ".*1/2.*"})
        self.assertNotEqual(request_1, request_2)
コード例 #3
0
    def test_invalid_form_fields(self):
        request = MappingRequest(
            None,
            None,
            {"form_fields": {
                "username": "******",
            }},
        )

        form_fields = {
            "password": "******",
        }

        matches = request.form_fields_matches(form_fields)

        self.assertFalse(matches)
コード例 #4
0
    def test_check_method_is_equal(self):
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "get"
        })
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "gEt"
        })
        self.assertEqual(request_1, request_2)

        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "get"
        })
        request_2 = MappingRequest(None, None, {"url": ".*1/2.*"})
        self.assertNotEqual(request_1, request_2)

        request_1 = MappingRequest(None, None, {"url": ".*1/2.*"})
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "get"
        })
        self.assertEqual(request_1, request_2)

        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "post"
        })
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "get"
        })
        self.assertNotEqual(request_1, request_2)

        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "get"
        })
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "method": "gEt"
        })
        self.assertEqual(request_1, request_2)
コード例 #5
0
    def test_check_matches_body(self):
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "body": ".*TheKey.*Value.*"
        })
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "body": "TheKeyEqual=ATestValueIs"
        })
        self.assertEqual(request_1, request_2)

        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "body": ".*TheKey.*XTheValue.*"
        })
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "body": "TheKeyEqual=TestTheValueIs"
        })
        self.assertNotEqual(request_1, request_2)
コード例 #6
0
    def test_matches_headers_also_as_array(self):
        dic_headers = {"key1": "value1", "key2": "value2"}
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })

        # with self.subTest("all matches"):
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": ["k.*1.*v.*1", "k.*2.*v.*2"]
        })
        self.assertEqual(request_1, request_2)

        # with self.subTest("some dont match"):
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": ["k.*1.*v.*1", "k.*3.*v.*2"]
        })
        self.assertNotEqual(request_1, request_2)
コード例 #7
0
    def test_matches_headers_also_as_string(self):
        dic_headers = {"key1": "value1", "key2": "value2"}
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })

        # with self.subTest("matches"):
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": "ke.*val.*"
        })
        self.assertEqual(request_1, request_2)

        # with self.subTest("does not matches"):
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": "kex.*val.*"
        })
        self.assertNotEqual(request_1, request_2)
コード例 #8
0
def to_mapper_request():
    dic = {
        "method": cherrypy.request.method,
        "url": cherrypy.url(),
        "headers": cherrypy.request.headers,
        "query_string": cherrypy.request.query_string,
    }

    if cherrypy.request.process_request_body:
        dic["body"] = cherrypy.request.body.read()
        dic["form_fields"] = cherrypy.request.body.params

    return MappingRequest(None, "default", dic)
コード例 #9
0
    def test_python_process_data(self):
        data = {
            "body_python": "extras/sample/files/dummy.py",
        }

        request_data = {"form_fields": {"username": "******"}}

        mapping_request = MappingRequest("", "", request_data)

        mapping_response = MappingResponse(None, None, data, "")
        mapping_response.process_python_data({"request": mapping_request})

        self.assertEqual(200, mapping_response.status)
        self.assertIn("My username", mapping_response.body.value)
コード例 #10
0
ファイル: test_log.py プロジェクト: pymocky/pymocky
    def test_request(self):
        with patch("sys.stdout", new=StringIO()) as output:
            data = {
                "url": "http://localhost/pymocky",
                "method": "post",
                "body": "Hello World",
            }

            request = MappingRequest("test_id", "test_scenario", data)

            Log.log_request(request, "http://localhost/pymocky")

            self.assertIn("'mock_id': 'test_id'", output.getvalue().strip())
            self.assertIn("'mock_scenario': 'test_scenario'",
                          output.getvalue().strip())
            self.assertIn("'url': 'http://localhost/pymocky'",
                          output.getvalue().strip())
            self.assertIn("'method': 'post'", output.getvalue().strip())
            self.assertIn("'headers': {}", output.getvalue().strip())
            self.assertIn("'body': 'Hello World'", output.getvalue().strip())
            self.assertIn("'form_fields': {}", output.getvalue().strip())
            self.assertIn("'query_string': ''", output.getvalue().strip())
コード例 #11
0
    def test_check_matches_headers(self):
        dic_headers = {"key1": "value1", "key2": "value2"}
        request_2 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })

        # with self.subTest("no headers"):
        request_1 = MappingRequest(None, None, {"url": ".*1/2.*"})
        self.assertEqual(request_1, request_2)

        # with self.subTest("does not have equal headers"):
        dic_headers = {"keyx": "valuex"}
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })
        self.assertNotEqual(request_1, request_2)

        # with self.subTest("has exact headers"):
        dic_headers = {"key1": "value1"}
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })
        self.assertEqual(request_1, request_2)

        # with self.subTest("has pattern value headers"):
        dic_headers = {"key1": "va.*1"}
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })
        self.assertEqual(request_1, request_2)

        # with self.subTest("has pattern key headers"):
        dic_headers = {"k.*1": "value1"}
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })
        self.assertEqual(request_1, request_2)

        # with self.subTest("all headers must match"):
        dic_headers = {"k.*1": "value1", "key2": "value2"}
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })
        self.assertEqual(request_1, request_2)

        dic_headers = {"k.*1": "value1", "k.*2": "v.*2"}
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })
        self.assertEqual(request_1, request_2)

        # with self.subTest("only some match returns false"):
        dic_headers = {"k.*1": "value1", "key3": "value2"}
        request_1 = MappingRequest(None, None, {
            "url": ".*1/2.*",
            "headers": dic_headers
        })
        self.assertNotEqual(request_1, request_2)
コード例 #12
0
    def test_invalid_body(self):
        request = MappingRequest(None, None, {"body": [".*TheKey.*Value.*"]})

        matches = request.body_matches(request.body)

        self.assertFalse(matches)