def test_get_fuzz_req_params(self): """Test fuzz_request against request with params.""" req = get_req("/api/v1/endpoint", params=test_params_obj) strings = ["test", "test2"] expected_param_objs = [ { "otherkey": "test", "key": "val" }, { "otherkey": "val2", "key": "test" }, { "otherkey": "test2", "key": "val" }, { "otherkey": "val2", "key": "test2" } ] i = 0 for i, d in enumerate( fuzz_datagen.fuzz_request(req, strings, "params", "ut"), 1): name, req, fuzz_string, name = d self.assertIn(req.params, expected_param_objs) self.assertEqual(i, 4)
def test_post_fuzz_req_url_vars(self): """Test fuzz_request with 2 named URL params.""" req = post_req("/api/v1/{key:val}/path/{otherkey:val2}") strings = ["test"] results = [ d for d in fuzz_datagen.fuzz_request(req, strings, "url", "ut") ] req_objs = [r[1] for r in results] urls = [o.url for o in req_objs] self.assertIn(get_url("/api/v1/test/path/val2"), urls) self.assertIn(get_url("/api/v1/val/path/test"), urls) self.assertEqual(2, len(results))
def test_post_fuzz_req_json_vars(self): """Test fuzz_request with a JSON-like dict.""" req = post_req( "/api/v1/{key:val}/path/{otherkey:val2}", data=test_dict) strings = ["test"] results = [ d for d in fuzz_datagen.fuzz_request(req, strings, "data", "ut") ] req_objs = [r[1] for r in results] for d in [o.data for o in req_objs]: _dict = json.loads(d) self.assertEqual("test", _dict.get("a").get("b")) self.assertEqual("e", _dict.get("a").get("d")) for url in [o.url for o in req_objs]: self.assertEqual(get_url("/api/v1/val/path/val2"), url) self.assertEqual(1, len(results))
def test_post_fuzz_req_json_vars(self): """Test fuzz_request with a JSON-like dict.""" req = post_req("/api/v1/{key:val}/path/{otherkey:val2}", data=test_dict) strings = ["test"] results = [ d for d in fuzz_datagen.fuzz_request(req, strings, "data", "ut") ] req_objs = [r[1] for r in results] for d in [o.data for o in req_objs]: _dict = json.loads(d) self.assertEqual("test", _dict.get("a").get("b")) self.assertEqual("e", _dict.get("a").get("d")) for url in [o.url for o in req_objs]: self.assertEqual(get_url("/api/v1/val/path/val2"), url) self.assertEqual(1, len(results))