forked from twilio/twilio-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_serialize.py
More file actions
139 lines (108 loc) · 4.12 KB
/
test_serialize.py
File metadata and controls
139 lines (108 loc) · 4.12 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
import datetime
import unittest
from twilio.base import serialize, values
class Iso8601DateTestCase(unittest.TestCase):
def test_unset(self):
value = values.unset
actual = serialize.iso8601_date(value)
self.assertEqual(values.unset, actual)
def test_datetime(self):
value = datetime.datetime(2015, 1, 2, 12, 0, 0, 0)
actual = serialize.iso8601_date(value)
self.assertEqual('2015-01-02', actual)
def test_datetime_without_time(self):
value = datetime.datetime(2015, 1, 2)
actual = serialize.iso8601_date(value)
self.assertEqual('2015-01-02', actual)
def test_date(self):
value = datetime.date(2015, 1, 2)
actual = serialize.iso8601_date(value)
self.assertEqual('2015-01-02', actual)
def test_str(self):
actual = serialize.iso8601_date('2015-01-02')
self.assertEqual('2015-01-02', actual)
class Iso8601DateTimeTestCase(unittest.TestCase):
def test_unset(self):
value = values.unset
actual = serialize.iso8601_datetime(value)
self.assertEqual(values.unset, actual)
def test_datetime(self):
value = datetime.datetime(2015, 1, 2, 3, 4, 5, 6)
actual = serialize.iso8601_datetime(value)
self.assertEqual('2015-01-02T03:04:05Z', actual)
def test_datetime_without_time(self):
value = datetime.datetime(2015, 1, 2)
actual = serialize.iso8601_datetime(value)
self.assertEqual('2015-01-02T00:00:00Z', actual)
def test_date(self):
value = datetime.date(2015, 1, 2)
actual = serialize.iso8601_datetime(value)
self.assertEqual('2015-01-02T00:00:00Z', actual)
def test_str(self):
actual = serialize.iso8601_datetime('2015-01-02T03:04:05Z')
self.assertEqual('2015-01-02T03:04:05Z', actual)
class PrefixedCollapsibleMapTestCase(unittest.TestCase):
def test_unset(self):
value = values.unset
actual = serialize.prefixed_collapsible_map(value, 'Prefix')
self.assertEqual({}, actual)
def test_single_key(self):
value = {
'foo': 'bar'
}
actual = serialize.prefixed_collapsible_map(value, 'Prefix')
self.assertEqual({
'Prefix.foo': 'bar'
}, actual)
def test_nested_key(self):
value = {
'foo': {
'bar': 'baz'
}
}
actual = serialize.prefixed_collapsible_map(value, 'Prefix')
self.assertEqual({
'Prefix.foo.bar': 'baz'
}, actual)
def test_multiple_keys(self):
value = {
'watson': {
'language': 'en',
'alice': 'bob'
},
'foo': 'bar'
}
actual = serialize.prefixed_collapsible_map(value, 'Prefix')
self.assertEqual({
'Prefix.watson.language': 'en',
'Prefix.watson.alice': 'bob',
'Prefix.foo': 'bar'
}, actual)
def test_list(self):
value = [
'foo',
'bar'
]
actual = serialize.prefixed_collapsible_map(value, 'Prefix')
self.assertEqual({}, actual)
class ObjectTestCase(unittest.TestCase):
def test_object(self):
actual = serialize.object({'twilio': 'rocks'})
self.assertEqual('{"twilio": "rocks"}', actual)
def test_list(self):
actual = serialize.object(['twilio', 'rocks'])
self.assertEqual('["twilio", "rocks"]', actual)
def test_does_not_change_other_types(self):
actual = serialize.object('{"attribute":"value"}')
self.assertEqual('{"attribute":"value"}', actual)
class MapTestCase(unittest.TestCase):
def test_maps_func_to_list(self):
actual = serialize.map([1, 2, 3], lambda e: e * 2)
self.assertEqual([2, 4, 6], actual)
def test_does_not_change_other_types(self):
actual = serialize.map("abc", lambda e: e * 2)
self.assertEqual("abc", actual)
actual = serialize.map(123, lambda e: e * 2)
self.assertEqual(123, actual)
actual = serialize.map({'some': 'val'}, lambda e: e * 2)
self.assertEqual({'some': 'val'}, actual)