Skip to content

Commit e642ab0

Browse files
committed
datetime, str, object() tests
1 parent d496507 commit e642ab0

3 files changed

Lines changed: 59 additions & 0 deletions

File tree

test/test_canonical.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
2+
3+
import unittest
4+
5+
import orjson
6+
7+
8+
class CanonicalTests(unittest.TestCase):
9+
def test_dumps_ctrl_escape(self):
10+
"""
11+
dumps() ctrl characters
12+
"""
13+
self.assertEqual(orjson.dumps("text\u0003\r\n"), b'"text\\u0003\\r\\n"')
14+
15+
def test_dumps_escape_quote_backslash(self):
16+
"""
17+
dumps() quote, backslash escape
18+
"""
19+
self.assertEqual(orjson.dumps(r'"\ test'), b'"\\"\\\\ test"')
20+
21+
def test_dumps_escape_line_separator(self):
22+
"""
23+
dumps() U+2028, U+2029 escape
24+
"""
25+
self.assertEqual(
26+
orjson.dumps({u"spaces": u"\u2028 \u2029"}),
27+
b'{"spaces":"\xe2\x80\xa8 \xe2\x80\xa9"}',
28+
)

test/test_datetime.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,30 @@ def test_datetime_naive_utc(self):
3838
b'["2000-01-01T02:03:04.123+00:00"]',
3939
)
4040

41+
def test_datetime_min(self):
42+
"""
43+
datetime.datetime min range
44+
"""
45+
self.assertEqual(
46+
orjson.dumps(
47+
[datetime.datetime(datetime.MINYEAR, 1, 1, 0, 0, 0, 0)],
48+
option=orjson.OPT_NAIVE_UTC,
49+
),
50+
b'["1-01-01T00:00:00+00:00"]',
51+
)
52+
53+
def test_datetime_max(self):
54+
"""
55+
datetime.datetime max range
56+
"""
57+
self.assertEqual(
58+
orjson.dumps(
59+
[datetime.datetime(datetime.MAXYEAR, 12, 31, 23, 59, 50, 999999)],
60+
option=orjson.OPT_NAIVE_UTC,
61+
),
62+
b'["9999-12-31T23:59:50.999999+00:00"]',
63+
)
64+
4165
def test_datetime_tz_assume(self):
4266
"""
4367
datetime.datetime tz with assume UTC uses tz

test/test_type.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,3 +299,10 @@ def test_dict_invalid_key_loads(self):
299299
orjson.loads('{1:"value"}')
300300
with self.assertRaises(orjson.JSONDecodeError):
301301
orjson.loads('{{"a":true}:true}')
302+
303+
def test_object(self):
304+
"""
305+
object() dumps()
306+
"""
307+
with self.assertRaises(orjson.JSONEncodeError):
308+
orjson.dumps(object())

0 commit comments

Comments
 (0)