File: test_serialize.py

package info (click to toggle)
python-twilio 6.51.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 12,260 kB
  • sloc: python: 128,982; makefile: 51
file content (139 lines) | stat: -rw-r--r-- 4,219 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
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)