def test_22_json_pointer__array(self): dic = dict(a=[1, 2], ) self.assertEqual(TT.get(dic, "/a/1"), (2, '')) (val, msg) = TT.get(dic, "/a/2") self.assertTrue(val is None) self.assertTrue(bool(msg)) # maybe the error message depends on python version. # self.assertEqual(msg, 'list index out of range') (val, msg) = TT.get(dic, "/a/b/d/-") self.assertTrue(val is None) self.assertTrue(bool(msg))
def test_20_json_pointer(self): # test case in rfc, http://tools.ietf.org/html/rfc6901 dic = {"foo": ["bar", "baz"], "": 0, "a/b": 1, "c%d": 2, "e^f": 3, "g|h": 4, r"i\\j": 5, r'k\"l': 6, " ": 7, "m~n": 8} self.assertTrue(dicts_equal(TT.get(dic, "")[0], dic)) self.assertEqual(TT.get(dic, "/foo")[0], ["bar", "baz"]) self.assertEqual(TT.get(dic, "/foo/0")[0], "bar") self.assertEqual(TT.get(dic, "/")[0], 0) self.assertEqual(TT.get(dic, "/a~1b")[0], 1) self.assertEqual(TT.get(dic, "/c%d")[0], 2) self.assertEqual(TT.get(dic, "/e^f")[0], 3) self.assertEqual(TT.get(dic, "/g|h")[0], 4) self.assertEqual(TT.get(dic, r"/i\\j")[0], 5) self.assertEqual(TT.get(dic, r'/k\"l')[0], 6) self.assertEqual(TT.get(dic, "/ ")[0], 7) self.assertEqual(TT.get(dic, "/m~0n")[0], 8)
def test_10_empty_path(self): dic = dict(a=1, b=[1, 2]) (dic2, err) = TT.get(dic, '') self.assertEqual(err, '') self.assertTrue(dicts_equal(dic2, dic))