Пример #1
0
 def test_json_value_string_error(self):
     json_string = [u'"你好\n "', '"\uu0uu"', 'abc"', '"\r\n\t"']
     for i in range(len(json_string)):
         json_reader = JsonReader(CharReader(json_string[i]))
         self.assertRaises(jsonerror.JsonParseError, json_reader.json_read)
     json_string2 = ['"', '" ']
     for i in range(len(json_string2)):
         json_reader = JsonReader(CharReader(json_string2[i]))
         self.assertRaises(jsonerror.JsonError, json_reader.json_read)
Пример #2
0
 def test_json_value_number(self):
     json_number = ['0', '-1', '20', '2e-2', '-2.2E+3', '2.234e-5']
     json_number_expected = [0, -1, 20, 0.02, -2200, 0.00002234]
     for i in range(len(json_number)):
         json_reader = JsonReader(CharReader(json_number[i]))
         self.assertAlmostEqual(json_reader.json_read(),
                                json_number_expected[i])
Пример #3
0
 def test_read_number(self):
     json_string = [
         "1", "1e+10", "9e-10", "-2e+4", "-4e-6", "1.234", "12.34E+3",
         "-123.0E-2"
     ]
     expected_string = [
         1, 10000000000, 9e-10, -20000, -0.000004, 1.234, 12340, -1.23
     ]
     for i in range(len(json_string)):
         token_reader = TokenReader(CharReader(json_string[i]))
         self.assertEqual(token_reader.read_number(), expected_string[i])
Пример #4
0
 def test_json_value_string(self):
     json_string = [
         '""', '"abc"', '" "', '"\t"', u'"你好\a"', '"\u4f60\u597d"',
         '"\u1234"'
     ]
     json_string_expected = [
         '', 'abc', ' ', '\t', u'你好\a', u'你好', u'\u1234'
     ]
     for i in range(len(json_string)):
         json_reader = JsonReader(CharReader(json_string[i]))
         self.assertEqual(json_reader.json_read(), json_string_expected[i])
Пример #5
0
 def test_next_token(self):
     json_string = ["{", '}', ":", ',', '[', ']', '1']
     token_type_expect = [
         TokenType.START_OBJ,
         TokenType.END_OBJ,
         TokenType.COLON,
         TokenType.COMMA,
         TokenType.START_LIST,
         TokenType.END_LIST,
         TokenType.NUMBER
     ]
     token_reader = TokenReader(CharReader(json_string))
     for i in range(len(token_type_expect)):
         token_type = token_reader.read_next_token()
         self.assertEqual(token_type, token_type_expect[i],
                          "TokenType not equal.")
Пример #6
0
    def loads(self, s):
        """
        load JSON from string

        Attributes:
        s -- JSON string
        """
        char_reader = CharReader(s)
        self.json_reader = JsonReader(char_reader)
        try:
            self._data = self.json_reader.json_read()
        except jsonerror.JsonError as json_error:
            logging.exception(msg=json_error.message)
            raise json_error

        return self._data
Пример #7
0
    def load_file(self, f):
        """
        load JSON from file

        Attributes:
        f -- file_path
        """
        with open(f, 'r') as json_file:
            json_string = json_file.read().decode('gbk')
        if json_string is None:
            raise jsonerror.JsonFileError('Open json file error.',
                                          'In JsonParser:load_file.')
        char_reader = CharReader(json_string)
        self.json_reader = JsonReader(char_reader)
        try:
            self._data = self.json_reader.json_read()
        except jsonerror.JsonError as json_error:
            logging.exception(msg=json_error.message)
            raise json_error
        print self._data
Пример #8
0
 def test_read_null(self):
     json_string = "null"
     expected_string = None
     token_reader = TokenReader(CharReader(json_string))
     self.assertEqual(token_reader.read_null(), expected_string)
Пример #9
0
 def test_read_bool(self):
     json_string = "true"
     expected_string = True
     token_reader = TokenReader(CharReader(json_string))
     self.assertEqual(token_reader.read_bool(), expected_string)
Пример #10
0
 def test_read_string(self):
     json_string = '"testing  "'
     expected_string = "testing  "
     token_reader = TokenReader(CharReader(json_string))
     self.assertEqual(token_reader.read_string(), expected_string)
Пример #11
0
 def test_json_value_bool(self):
     json_bool = ['true', 'false', 'true\n \r', 'false\t \r']
     json_bool_expected = [True, False, True, False]
     for i in range(len(json_bool)):
         json_reader = JsonReader(CharReader(json_bool[i]))
         self.assertEqual(json_reader.json_read(), json_bool_expected[i])