Beispiel #1
0
 def test_fuzz_data_dict_with_list(self):
     """Test _fuzz_data with a dict containing a list."""
     strings = ["test"]
     expected = [
         {
             "a": ["test", "val2", "val3"],
             "b": "c"
         }, {
             "a": ["val", "test", "val3"],
             "b": "c"
         }, {
             "a": ["val", "val2", "test"],
             "b": "c"
         }, {
             "a": ["val", "val2", "val3"],
             "b": "test"
         }
     ]
     i = 0
     for i, result in enumerate(
             fuzz_datagen._fuzz_data(strings, test_dict_w_list,
                                     action_field, "unittest"), 1):
         name, model, string, param_path = result
         self.assertIn(model, expected)
         self.assertEqual("unitteststr1_model{0}".format(i), name)
     self.assertEqual(4, i)
Beispiel #2
0
 def test_fuzz_data_dict_with_list(self):
     """Test _fuzz_data with a dict containing a list."""
     strings = ["test"]
     expected = [
         {
             "a": ["test", "val2", "val3"],
             "b": "c"
         }, {
             "a": ["val", "test", "val3"],
             "b": "c"
         }, {
             "a": ["val", "val2", "test"],
             "b": "c"
         }, {
             "a": ["val", "val2", "val3"],
             "b": "test"
         }
     ]
     i = 0
     for i, result in enumerate(
             fuzz_datagen._fuzz_data(strings, test_dict_w_list,
                                     action_field, "unittest"), 1):
         name, model, string, param_path = result
         self.assertIn(model, expected)
         self.assertEqual("unitteststr1_model{0}".format(i), name)
     self.assertEqual(4, i)
Beispiel #3
0
    def test_fuzz_data_xml(self):
        """Test _fuzz_data_ with an XML element."""
        data = ElementTree.Element("a")
        sub_ele = ElementTree.Element("b")
        sub_ele.text = "c"
        sub_ele.attrib = {"name": "val"}
        sub_ele2 = ElementTree.Element("ACTION_FIELD:d")
        sub_ele2.text = "e"
        data.append(sub_ele)
        data.append(sub_ele2)
        strings = ["test"]

        contents = []
        expected_contents = [
            '<a><b name="val">test</b><ACTION_FIELD:d>e</ACTION_FIELD:d></a>',
            '<a><b name="test">c</b><ACTION_FIELD:d>e</ACTION_FIELD:d></a>'
        ]

        for i, d in enumerate(
                fuzz_datagen._fuzz_data(strings, data, "ACTION_FIELD:",
                                        "unittest"), 1):
            name, model, stri, param_path = d
            self.assertEqual("unitteststr1_model{0}".format(i), name)
            self.assertEqual("test", stri)
            if six.PY2:
                contents.append(ElementTree.tostring(model))
            else:
                contents.append(ElementTree.tostring(model).decode("utf-8"))
        self.assertEqual(expected_contents, contents)
Beispiel #4
0
    def test_fuzz_data_xml(self):
        """Test _fuzz_data_ with an XML element."""
        data = ElementTree.Element("a")
        sub_ele = ElementTree.Element("b")
        sub_ele.text = "c"
        sub_ele.attrib = {"name": "val"}
        sub_ele2 = ElementTree.Element("ACTION_FIELD:d")
        sub_ele2.text = "e"
        data.append(sub_ele)
        data.append(sub_ele2)
        strings = ["test"]

        contents = []
        expected_contents = [
            '<a><b name="val">test</b><ACTION_FIELD:d>e</ACTION_FIELD:d></a>',
            '<a><b name="test">c</b><ACTION_FIELD:d>e</ACTION_FIELD:d></a>'
        ]

        for i, d in enumerate(
                fuzz_datagen._fuzz_data(strings, data, "ACTION_FIELD:",
                                        "unittest"), 1):
            name, model, stri, param_path = d
            self.assertEqual("unitteststr1_model{0}".format(i), name)
            self.assertEqual("test", stri)
            if six.PY2:
                contents.append(ElementTree.tostring(model))
            else:
                contents.append(ElementTree.tostring(model).decode("utf-8"))
        self.assertEqual(expected_contents, contents)
Beispiel #5
0
    def test_invalid_type(self):
        """Test _fuzz_data with a list (invalid type)."""
        data = set(["list", "of", "strings"])
        strings = ["test"]

        self.assertRaises(
            TypeError,
            fuzz_datagen._fuzz_data(strings, data, action_field, "unittest"))
Beispiel #6
0
    def test_invalid_type(self):
        """Test _fuzz_data with a list (invalid type)."""
        data = set(["list", "of", "strings"])
        strings = ["test"]

        self.assertRaises(
            TypeError,
            fuzz_datagen._fuzz_data(strings, data, action_field, "unittest"))
Beispiel #7
0
    def test_fuzz_data_dict(self):
        """Test _fuzz_data with a dict."""
        strings = ["test"]

        for i, d in enumerate(
                fuzz_datagen._fuzz_data(strings, test_dict, action_field,
                                        "unittest"), 1):
            name, model, stri, param_path = d
            self.assertEqual("unitteststr1_model{0}".format(i), name)
            self.assertEqual("e", model.get("a").get("ACTION_FIELD:d"))
            self.assertEqual("test", model.get("a").get("b"))
            self.assertEqual("test", stri)
            self.assertEqual("a/b", param_path)
Beispiel #8
0
    def test_fuzz_data_string(self):
        """Test _fuzz_data with a string like a URL."""
        data = "TEST_STRING/{ST}"
        strings = ["test"]

        for i, d in enumerate(
                fuzz_datagen._fuzz_data(strings, data, action_field,
                                        "unittest"), 1):
            name, model, stri, param_path = d
            self.assertEqual("unitteststr1_model{0}".format(i), name)
            self.assertEqual("TEST_STRING/test", model)
            self.assertEqual("test", stri)
            self.assertEqual("ST", param_path)
Beispiel #9
0
    def test_fuzz_data_dict(self):
        """Test _fuzz_data with a dict."""
        strings = ["test"]

        for i, d in enumerate(
                fuzz_datagen._fuzz_data(strings, test_dict, action_field,
                                        "unittest"), 1):
            name, model, stri, param_path = d
            self.assertEqual("unitteststr1_model{0}".format(i), name)
            self.assertEqual("e", model.get("a").get("ACTION_FIELD:d"))
            self.assertEqual("test", model.get("a").get("b"))
            self.assertEqual("test", stri)
            self.assertEqual("a/b", param_path)
Beispiel #10
0
    def test_fuzz_data_string(self):
        """Test _fuzz_data with a string like a URL."""
        data = "TEST_STRING/{ST}"
        strings = ["test"]

        for i, d in enumerate(
                fuzz_datagen._fuzz_data(strings, data, action_field,
                                        "unittest"), 1):
            name, model, stri, param_path = d
            self.assertEqual("unitteststr1_model{0}".format(i), name)
            self.assertEqual("TEST_STRING/test", model)
            self.assertEqual("test", stri)
            self.assertEqual("ST", param_path)
Beispiel #11
0
 def test_fuzz_data_with_one_named_one_unnamed(self):
     """Test _fuzz_data with 1 named, 1 unnamed URL variables."""
     strings = ["test", "test2"]
     data = "/api/v1/{key:val}/path/{otherkey}"
     expected_results = [
         ("unitteststr1_model1", "/api/v1/test/path/{otherkey}", "test",
          "key"), ("unitteststr1_model2", "/api/v1/{key:val}/path/test",
                   "test", "otherkey"),
         ("unitteststr2_model1", "/api/v1/test2/path/{otherkey}", "test2",
          "key"), ("unitteststr2_model2", "/api/v1/{key:val}/path/test2",
                   "test2", "otherkey")
     ]
     results = [
         d
         for d in fuzz_datagen._fuzz_data(strings, data, action_field,
                                          "unittest")
     ]
     self.assertEqual(expected_results, results)
Beispiel #12
0
 def test_fuzz_data_with_one_named_one_unnamed(self):
     """Test _fuzz_data with 1 named, 1 unnamed URL variables."""
     strings = ["test", "test2"]
     data = "/api/v1/{key:val}/path/{otherkey}"
     expected_results = [
         ("unitteststr1_model1", "/api/v1/test/path/{otherkey}", "test",
          "key"), ("unitteststr1_model2", "/api/v1/{key:val}/path/test",
                   "test", "otherkey"),
         ("unitteststr2_model1", "/api/v1/test2/path/{otherkey}", "test2",
          "key"), ("unitteststr2_model2", "/api/v1/{key:val}/path/test2",
                   "test2", "otherkey")
     ]
     results = [
         d
         for d in fuzz_datagen._fuzz_data(strings, data, action_field,
                                          "unittest")
     ]
     self.assertEqual(expected_results, results)