-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtests.py
executable file
·67 lines (62 loc) · 2.69 KB
/
tests.py
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
63
64
65
66
67
#!/usr/bin/env python3
import collections
import decimal
import jqsh.values
import unittest
class JQSHTests(unittest.TestCase):
def test_value_abcs(self):
with self.assertRaises(TypeError):
jqsh.values.Value()
jqsh.values.JQSHException('testException')
jqsh.values.Null()
jqsh.values.Null(None)
jqsh.values.Boolean()
jqsh.values.Boolean(False)
jqsh.values.Boolean(True)
jqsh.values.Number()
jqsh.values.Number(-3)
jqsh.values.Number(decimal.Decimal('813' * 813 + '.5'))
jqsh.values.String()
jqsh.values.String('')
jqsh.values.String('this is an example of a jqsh string')
jqsh.values.Array()
jqsh.values.Array('foo', jqsh.values.String('bar'))
obj = jqsh.values.Object()
obj.keys()
obj.values()
obj.items()
def test_value_equality(self):
self.assertEqual(jqsh.values.JQSHException('testException'), jqsh.values.JQSHException('testException', extra_stuff='irrelevant metadata'))
self.assertEqual(jqsh.values.Null(), jqsh.values.Null(None))
self.assertEqual(jqsh.values.Null(), None)
self.assertEqual(jqsh.values.Boolean(), jqsh.values.Boolean(False))
self.assertEqual(jqsh.values.Boolean(), False)
self.assertEqual(jqsh.values.Number(), jqsh.values.Number(0))
self.assertEqual(jqsh.values.Number(), 0)
self.assertEqual(jqsh.values.Number(), 0.0)
self.assertEqual(jqsh.values.String(), jqsh.values.String(''))
self.assertEqual(jqsh.values.String('42'), jqsh.values.String(42))
self.assertEqual(jqsh.values.Array(), jqsh.values.Array([]))
self.assertEqual(jqsh.values.Object([('foo', True), ('bar', False)]), collections.OrderedDict([('bar', False), ('foo', jqsh.values.Boolean(True))]))
def test_value_sorting(self):
values = [
jqsh.values.JQSHException('testException'),
jqsh.values.Null(),
jqsh.values.Boolean(),
jqsh.values.Boolean(True),
jqsh.values.Number(-3),
jqsh.values.Number(),
jqsh.values.Number(decimal.Decimal('813' * 813 + '.5')),
jqsh.values.String(),
jqsh.values.String('this is an example of a jqsh string'),
jqsh.values.String('x'),
jqsh.values.Array(),
jqsh.values.Array('foo', jqsh.values.String('bar')),
jqsh.values.Object(),
jqsh.values.Object([('foo', True), ('bar', False)])
]
for i in range(len(values) - 1):
for j in range(i + 1, len(values)):
self.assertLess(values[i], values[j])
if __name__ == '__main__':
unittest.main()