File: test_encoder.py

package info (click to toggle)
python-prison 0.1.3-4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 144 kB
  • sloc: python: 486; makefile: 3
file content (62 lines) | stat: -rw-r--r-- 2,143 bytes parent folder | download | duplicates (3)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import unittest

try:
    import prison
except ImportError:
    from .context import prison


class TestEncoder(unittest.TestCase):

    def test_dict(self):
        self.assertEqual('()', prison.dumps({}))
        self.assertEqual('(a:0,b:1)', prison.dumps({
            'a': 0,
            'b': 1
        }))
        self.assertEqual("(a:0,b:foo,c:'23skidoo')", prison.dumps({
            'a': 0,
            'c': '23skidoo',
            'b': 'foo'
        }))
        self.assertEqual('(id:!n,type:/common/document)', prison.dumps({
            'type': '/common/document',
            'id': None
        }))
        self.assertEqual("(a:0)", prison.dumps({
            'a': 0
        }))

    def test_bool(self):
        self.assertEqual('!t', prison.dumps(True))
        self.assertEqual('!f', prison.dumps(False))

    def test_none(self):
        self.assertEqual('!n', prison.dumps(None))

    def test_list(self):
        self.assertEqual('!(1,2,3)', prison.dumps([1, 2, 3]))
        self.assertEqual('!()', prison.dumps([]))
        self.assertEqual("!(!t,!f,!n,'')", prison.dumps([True, False, None, '']))

    def test_number(self):
        self.assertEqual('0', prison.dumps(0))
        self.assertEqual('1.5', prison.dumps(1.5))
        self.assertEqual('-3', prison.dumps(-3))
        self.assertEqual('1e30', prison.dumps(1e+30))
        self.assertEqual('1e-30', prison.dumps(1.0000000000000001e-30))

    def test_string(self):
        self.assertEqual("''", prison.dumps(''))
        self.assertEqual('G.', prison.dumps('G.'))
        self.assertEqual('a', prison.dumps('a'))
        self.assertEqual("'0a'", prison.dumps('0a'))
        self.assertEqual("'abc def'", prison.dumps('abc def'))
        self.assertEqual("'-h'", prison.dumps('-h'))
        self.assertEqual('a-z', prison.dumps('a-z'))
        self.assertEqual("'wow!!'", prison.dumps('wow!'))
        self.assertEqual('domain.com', prison.dumps('domain.com'))
        self.assertEqual("'user@domain.com'", prison.dumps('user@domain.com'))
        self.assertEqual("'US $10'", prison.dumps('US $10'))
        self.assertEqual("'can!'t'", prison.dumps("can't"))