From 5c4d14f8a5c238b76bfc1ff84d7c9919f0447bda Mon Sep 17 00:00:00 2001 From: noah morrison Date: Fri, 16 Jan 2015 10:51:20 -0500 Subject: [PATCH] Add a unittest for an edge-case recursion error. Currently this makes chevron run in an infinite loop (Until recursion depth limit happens) --- test_spec.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test_spec.py b/test_spec.py index 7787625..7b9bbe8 100755 --- a/test_spec.py +++ b/test_spec.py @@ -115,6 +115,20 @@ class ExpandedCoverage(unittest.TestCase): self.assertEqual(result, expected) + def test_recursion(self): + args = { + 'template': '{{# 1.2 }}{{# data }}{{.}}{{/ data }}{{/ 1.2 }}', + 'data': {'1': {'2': [{'data': ["1", "2", "3"]}]}} + } + + try: + result = chevron.render(**args) + except RuntimeError: + result = 'recursion' + expected = '123' + + self.assertEqual(result, expected) + # Run unit tests from command line if __name__ == "__main__": -- 2.47.3