diff --git a/tests/test_document.py b/tests/test_document.py index 402e45f..5b83cf0 100644 --- a/tests/test_document.py +++ b/tests/test_document.py @@ -305,3 +305,38 @@ def test_document_freeze(): doc.freeze() assert doc.is_thawed is False + +def test_document_large_str(): + s0 = 'V' + s1 = s0 * 4096 + s2 = s1 * 16 + s3 = s1 + 'asdf' + + for v in (s0, s1, s2, s3): + s = ''.join(('"', v, '"')) + doc = Document(s) + assert doc.as_obj == v + assert doc.dumps() == s + + d = {'k': v, v: 'v'} + doc = Document(d) + assert doc.as_obj == d + assert doc.dumps() == f'{{"k":"{v}","{v}":"v"}}' + + l = [v, v] + doc = Document(l) + assert doc.as_obj == l + assert doc.dumps() == f'["{v}","{v}"]' + +def test_document_large_dict(): + n = 2 * 16 + 1 + d = {} + for i in range(n): + d[str(i)] = i + + doc = Document(d) + assert doc.as_obj == d + s = doc.dumps() + new_doc = Document(s) + assert new_doc.as_obj == d + assert new_doc.dumps() == s