File: test_parsley_json.py

package info (click to toggle)
python-parsley 1.3-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,048 kB
  • sloc: python: 9,897; makefile: 127
file content (41 lines) | stat: -rw-r--r-- 1,658 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from __future__ import unicode_literals

from parsley_json import JSONParser
import unittest

class JSONParserTests(unittest.TestCase):


    def test_integer(self):
        self.assertEqual(JSONParser("123").number(), 123)
        self.assertEqual(JSONParser("-123").number(), -123)
        self.assertEqual(JSONParser("0").number(), 0)

    def test_float(self):
        self.assertEqual(JSONParser("0.5").number(), 0.5)
        self.assertEqual(JSONParser("1.0").number(), 1.0)
        self.assertEqual(JSONParser("-3.5").number(), -3.5)
        self.assertEqual(JSONParser("2e7").number(), 2e7)
        self.assertEqual(JSONParser("1.2E6").number(), 1.2E6)

    def test_string(self):
        self.assertEqual(JSONParser('u2603').escapedUnicode(), "\u2603")
        self.assertEqual(JSONParser('"foo"').string(), "foo")
        self.assertEqual(JSONParser(r'"foo\n"').string(), "foo\n")
        self.assertEqual(JSONParser(r'"foo\rbaz\u2603"').string(), "foo\rbaz\u2603")
        self.assertEqual(JSONParser(r'"\\\/\b\"\f\t"').string(), '\\/\b"\f\t')

    def test_literals(self):
        self.assertEqual(JSONParser(r'true').value(), True)
        self.assertEqual(JSONParser(r'false').value(), False)
        self.assertEqual(JSONParser(r'null').value(), None)

    def test_array(self):
        self.assertEqual(JSONParser(r'[1, 2]').array(), [1, 2])
        self.assertEqual(JSONParser(r'["foo", []]').array(), ["foo", []])

    def test_object(self):
        self.assertEqual(JSONParser(r'{"foo": 1}').object(), {"foo": 1})
        self.assertEqual(JSONParser(r'{"foo": "baz", "x": {}}').object(),
                         {"foo": "baz", "x": {}})