Completed
Push — master ( 1cbacc...292768 )
by Philip
29s
created

TestJSONSerializer.test_serialize_date()   A

Complexity

Conditions 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 7
rs 9.4285
1
import json
2
import unittest
3
import uuid
4
from datetime import date, datetime
5
6
from foil.serializers import json_serializer
7
8
9
class TestJSONSerializer(unittest.TestCase):
10
11
    def test_serialize_uuid(self):
12
        uid = uuid.uuid4()
13
14
        expected = '"{}"'.format(uid)
15
        result = self._serialize(uid)
16
17
        self.assertEquals(expected, result)
18
19
    def test_serialize_date(self):
20
        d = date(2014, 7, 14)
21
22
        expected = '"{}"'.format(d.strftime('%Y-%m-%d'))
23
        result = self._serialize(d)
24
25
        self.assertEquals(expected, result)
26
27
    def test_serialize_datetime(self):
28
        dt = datetime(2015, 3, 13, 20, 33, 22, 567)
29
30
        expected = '"{}Z"'.format(dt.strftime('%Y-%m-%dT%H:%M:%S.%f'))
31
        result = self._serialize(dt)
32
33
        self.assertEquals(expected, result)
34
35
    def _serialize(self, obj):
36
        return json.dumps(obj, default=json_serializer)
37