/
tests.py
50 lines (38 loc) · 1.39 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
# -*- coding: utf-8 -*-
from __future__ import absolute_import
import datetime
import uuid
from enum import Enum
from unittest import TestCase
from sentry.utils import json
class JSONTest(TestCase):
def test_uuid(self):
res = uuid.uuid4()
self.assertEquals(json.dumps(res), '"%s"' % res.hex)
def test_datetime(self):
res = datetime.datetime(day=1, month=1, year=2011, hour=1, minute=1, second=1)
self.assertEquals(json.dumps(res), '"2011-01-01T01:01:01.000000Z"')
def test_set(self):
res = set(["foo"])
self.assertEquals(json.dumps(res), '["foo"]')
def test_frozenset(self):
res = frozenset(["foo"])
self.assertEquals(json.dumps(res), '["foo"]')
def test_escape(self):
res = "<script>alert('&');</script>"
assert json.dumps(res) == "\"<script>alert('&');</script>\""
assert (
json.dumps(res, escape=True)
== '"\\u003cscript\\u003ealert(\\u0027\u0026\\u0027);\\u003c/script\\u003e"'
)
assert (
json.dumps_htmlsafe(res)
== '"\\u003cscript\\u003ealert(\\u0027\u0026\\u0027);\\u003c/script\\u003e"'
)
def test_inf(self):
res = float("inf")
self.assertEquals(json.dumps(res), "null")
def test_enum(self):
enum = Enum("foo", "a b c")
res = enum.a
self.assertEquals(json.dumps(res), "1")