Пример #1
0
    def test_make_null(self):
        test_filter = edit_response.filter_factory(self.make_null)(self.app)
        resp = test_filter(webob.Request.blank("/sauce", method="GET"))
        new_body = json.dumps(dict(result=None))
        resp_json = json.dumps(json.loads(resp.body))

        self.assertEqual(resp_json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #2
0
    def test_attrib_deletion(self):
        test_filter = edit_response.filter_factory(self.delete_conf)(self.app)
        resp = test_filter(webob.Request.blank("/secrets", method="PUT"))
        new_body = self.body
        del (new_body["result"]["passcode"])

        self.assertEqual(resp.json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #3
0
    def test_attrib_rename(self):
        test_filter = edit_response.filter_factory(self.redact_conf)(self.app)
        resp = test_filter(webob.Request.blank("/sauce", method="GET"))
        new_body = self.body
        new_body["result"]["recipe"] = "REDACTED"

        self.assertEqual(resp.json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #4
0
    def test_make_null(self):
        test_filter = edit_response.filter_factory(self.make_null)(self.app)
        resp = test_filter(webob.Request.blank("/sauce", method="GET"))
        new_body = json.dumps(dict(result=None))
        resp_json = json.dumps(json.loads(resp.body))

        self.assertEqual(resp_json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #5
0
    def test_attrib_rename(self):
        test_filter = edit_response.filter_factory(self.redact_conf)(self.app)
        resp = test_filter(webob.Request.blank("/sauce", method="GET"))
        new_body = self.body
        new_body["result"]["recipe"] = "REDACTED"

        self.assertEqual(resp.json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #6
0
    def test_attrib_deletion(self):
        test_filter = edit_response.filter_factory(self.delete_conf)(self.app)
        resp = test_filter(webob.Request.blank("/secrets", method="PUT"))
        new_body = self.body
        del (new_body['result']['passcode'])

        self.assertEqual(resp.json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #7
0
    def test_resource_with_alternate_methods(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)
        put_resp = test_filter(webob.Request.blank("/data", method="PUT"))
        get_resp = test_filter(webob.Request.blank("/data", method="GET"))
        head_resp = test_filter(webob.Request.blank("/data", method="HEAD"))

        self.assertEqual(put_resp, self.app)
        self.assertEqual(get_resp, self.app)
        self.assertEqual(head_resp, self.app)
Пример #8
0
    def test_attrib_combo(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)
        resp = test_filter(webob.Request.blank("/data", method="POST"))
        new_body = self.body
        new_body["result"]["combination"] = "REDACTED"
        del (new_body["result"]["secret"])

        self.assertEqual(resp.json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #9
0
    def test_url_garbage(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)
        resp1 = test_filter(webob.Request.blank("/gibberish/data", method="POST"))
        resp2 = test_filter(webob.Request.blank("/hacks?stuff=/data", method="POST"))
        resp3 = test_filter(webob.Request.blank("/stuffanddata", method="POST"))

        self.assertEqual(resp1, self.app)
        self.assertEqual(resp2, self.app)
        self.assertEqual(resp3, self.app)
Пример #10
0
    def test_attrib_combo(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)
        resp = test_filter(webob.Request.blank("/data", method="POST"))
        new_body = self.body
        new_body['result']['combination'] = 'REDACTED'
        del (new_body['result']['secret'])

        self.assertEqual(resp.json, new_body)
        self.assertEqual(resp.status_code, 200)
Пример #11
0
    def test_resource_with_alternate_methods(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)
        put_resp = test_filter(webob.Request.blank("/data", method="PUT"))
        get_resp = test_filter(webob.Request.blank("/data", method="GET"))
        head_resp = test_filter(webob.Request.blank("/data", method="HEAD"))

        self.assertEqual(put_resp, self.app)
        self.assertEqual(get_resp, self.app)
        self.assertEqual(head_resp, self.app)
Пример #12
0
    def test_none_request(self):
        app_body = "garbage"

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=app_body, status=200)
        test_filter = edit_response.filter_factory(self.test_none)(app)
        resp = test_filter(webob.Request.blank("/sauce/None", method="GET"))

        self.assertEqual(resp.body, app_body)
Пример #13
0
    def test_none_request(self):
        app_body = "garbage"

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=app_body, status=200)

        test_filter = edit_response.filter_factory(self.test_none)(app)
        resp = test_filter(webob.Request.blank("/sauce/None", method="GET"))

        self.assertEqual(resp.body, app_body)
Пример #14
0
    def test_attrib_case_sensitivity(self):
        app_body = {"results": {"Combination": "DONT LOOK", "SECRET": "<encrypted text>"}}

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)

        test_filter = edit_response.filter_factory(self.combo_conf)(app)
        resp = test_filter(webob.Request.blank("/data", method="POST"))

        self.assertEqual(resp.json, app_body)
Пример #15
0
    def test_keep_if(self):
        app_body = {"results": [{"some": "here"}, {"some": "there"}, {"derp": "derp"}]}
        processed_body = {"results": [{"some": "there"}, {"derp": "derp"}]}

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)

        test_filter = edit_response.filter_factory(self.drop_if)(app)
        resp = test_filter(webob.Request.blank("/sauce", method="GET"))

        self.assertEqual(resp.json, processed_body)
Пример #16
0
    def test_url_garbage(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)
        resp1 = test_filter(
            webob.Request.blank("/gibberish/data", method="POST"))
        resp2 = test_filter(
            webob.Request.blank("/hacks?stuff=/data", method="POST"))
        resp3 = test_filter(webob.Request.blank("/stuffanddata",
                                                method="POST"))

        self.assertEqual(resp1, self.app)
        self.assertEqual(resp2, self.app)
        self.assertEqual(resp3, self.app)
Пример #17
0
    def test_attrib_case_sensitivity(self):
        app_body = {"results":
                    {"Combination": "DONT LOOK",
                     "SECRET": "<encrypted text>"}}

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)

        test_filter = edit_response.filter_factory(self.combo_conf)(app)
        resp = test_filter(webob.Request.blank("/data", method="POST"))

        self.assertEqual(resp.json, app_body)
Пример #18
0
    def test_http_status_replace_delete(self):
        app_body = {"garbage": {"garbage": "here"}}

        test_status = {"enabled": "true",
                       "filters": "httpdelete",
                       "httpdelete_resource": "DELETE /sauce/{id}",
                       "httpdelete_key": "http_status_code",
                       "httpdelete_value": "replace_if:200:201"}

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)
        test_filter = edit_response.filter_factory(test_status)(app)

        resp = test_filter(webob.Request.blank("/sauce/id", method="DELETE"))
        self.assertEqual(resp.status_code, 201, resp)
Пример #19
0
    def test_http_status_replace_delete(self):
        app_body = {"garbage": {"garbage": "here"}}

        test_status = {
            "enabled": "true",
            "filters": "httpdelete",
            "httpdelete_resource": "DELETE /sauce/{id}",
            "httpdelete_key": "http_status_code",
            "httpdelete_value": "replace_if:200:201"
        }

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)

        test_filter = edit_response.filter_factory(test_status)(app)

        resp = test_filter(webob.Request.blank("/sauce/id", method="DELETE"))
        self.assertEqual(resp.status_code, 201, resp)
Пример #20
0
    def test_nested_lists_and_dicts(self):
        app_body = {
            "results": [
                {"some": "here"},
                {"some": "there"},
                ["random_string", {"secret": "MY SECRETS", "nested": {"combination": "1,2,3,4"}}],
            ]
        }
        processed_body = {
            "results": [{"some": "here"}, {"some": "there"}, ["random_string", {"nested": {"combination": "REDACTED"}}]]
        }

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)

        test_filter = edit_response.filter_factory(self.combo_conf)(app)
        resp = test_filter(webob.Request.blank("/data", method="POST"))

        self.assertEqual(resp.json, processed_body)
Пример #21
0
    def test_drop_if(self):
        app_body = {
            "results": [{
                "some": "here"
            }, {
                "some": "there"
            }, {
                "derp": "derp"
            }]
        }
        processed_body = {"results": [{"some": "here"}]}

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)

        test_filter = edit_response.filter_factory(self.keep_if)(app)
        resp = test_filter(webob.Request.blank("/sauce", method="GET"))

        self.assertEqual(resp.json, processed_body)
Пример #22
0
    def test_nested_lists_and_dicts(self):
        app_body = {"results":
                    [{"some": "here"},
                     {"some": "there"},
                     ["random_string",
                      {"secret": "MY SECRETS",
                       "nested":
                       {"combination": "1,2,3,4"}}]]}
        processed_body = {"results":
                          [{"some": "here"},
                           {"some": "there"},
                           ["random_string",
                            {"nested":
                             {"combination": "REDACTED"}}]]}

        @webob.dec.wsgify
        def app(req):
            return webob.Response(body=json.dumps(app_body), status=200)

        test_filter = edit_response.filter_factory(self.combo_conf)(app)
        resp = test_filter(webob.Request.blank("/data", method="POST"))

        self.assertEqual(resp.json, processed_body)
Пример #23
0
    def test_filter_creation(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)

        self.assertIsNotNone(test_filter)
        self.assertIsInstance(test_filter, edit_response.EditResponse)
        self.assertTrue(callable(test_filter))
Пример #24
0
    def test_disabled_filter(self):
        conf = {"enabled": "false"}
        test_filter = edit_response.filter_factory(conf)(self.app)
        resp = test_filter(webob.Request.blank("/cheeseburger", method="GET"))

        self.assertEqual(resp, self.app)
Пример #25
0
    def test_filter_creation(self):
        test_filter = edit_response.filter_factory(self.combo_conf)(self.app)

        self.assertIsNotNone(test_filter)
        self.assertIsInstance(test_filter, edit_response.EditResponse)
        self.assertTrue(callable(test_filter))
Пример #26
0
    def test_disabled_filter(self):
        conf = {"enabled": "false"}
        test_filter = edit_response.filter_factory(conf)(self.app)
        resp = test_filter(webob.Request.blank("/cheeseburger", method="GET"))

        self.assertEqual(resp, self.app)