Example #1
0
 def test_pepare_inform(self):
     self.assertRaises(AssertionError, _prepare_inform, {})
     self.assertEqual(_prepare_inform({"Foo": "A"}), {"Foo": [("A", _lambda_x_x)]})
     self.assertEqual(_prepare_inform({"Foo": ["A", ("B", int)]}), {"Foo": [("A", _lambda_x_x), ("B", int)]})
     self.assertEqual(
         _prepare_inform({"Blah": {"hello": float, "foo": None}, "Fizz": ["A", ("b", object), "B"]}),
         {
             "Blah": {"hello": float, "foo": None}.items(),
             "Fizz": [("A", _lambda_x_x), ("b", object), ("B", _lambda_x_x)],
         },
     )
Example #2
0
    def test_parse_inform_output(self):
        _safe_int = lambda s: -1 if s == "" else int(s)
        self.assertEqual(_parse_inform_output("", object()), {})
        query = {"A": [("A", int), "B", ("C", str)], "B": [("X", float), ("Y", _safe_int)]}
        query = _prepare_inform(query)
        outp = (
            "A:-1337" + PARAM_SEP + "asdf" + PARAM_SEP + "ghjk" + SECTION_SEP + "B:3.14" + PARAM_SEP + "" + SECTION_SEP
        )
        self.assertEqual(
            _parse_inform_output(outp, query), {"A": {"A": -1337, "B": "asdf", "C": "ghjk"}, "B": {"X": 3.14, "Y": -1}}
        )
        outp2 = outp.replace("-1337", "xxx")
        self.assertRaisesRegexp(
            ValueError, "invalid literal for int\(\) with base 10: 'xxx'", _parse_inform_output, outp2, query
        )
        outp3 = outp.replace("-1337", "")
        self.assertEqual(_parse_inform_output(outp3, query)["A"]["A"], None)

        def valerr(x):
            raise ValueError("hello-there")

        self.assertRaisesRegexp(ValueError, "hello-there", _parse_inform_output, "A:", {"A": [("x", valerr)]})