From e116058664fb1a079967017620f65bc52c716a15 Mon Sep 17 00:00:00 2001 From: epiphyte Date: Mon, 28 Apr 2025 12:50:44 -0400 Subject: [PATCH 1/2] Start adding tests w/ large strings --- tests/test_document.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/test_document.py b/tests/test_document.py index 402e45f..2ac1b89 100644 --- a/tests/test_document.py +++ b/tests/test_document.py @@ -305,3 +305,25 @@ 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}"]' From c50a725a997ea130e83c30c63adcfa0492fde01e Mon Sep 17 00:00:00 2001 From: epiphyte Date: Mon, 28 Apr 2025 13:00:26 -0400 Subject: [PATCH 2/2] Try a large dictionary --- tests/test_document.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/test_document.py b/tests/test_document.py index 2ac1b89..5b83cf0 100644 --- a/tests/test_document.py +++ b/tests/test_document.py @@ -327,3 +327,16 @@ def test_document_large_str(): 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