From 8ad9fe33ca022b093c668f9b15c922e31bc2a8ae Mon Sep 17 00:00:00 2001 From: Klaas van Schelven Date: Wed, 11 Jun 2025 16:57:43 +0200 Subject: [PATCH] Too many quotes in local-vars display Fix #119 --- theme/templatetags/issues.py | 2 +- theme/tests.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/theme/templatetags/issues.py b/theme/templatetags/issues.py index 48cfa64..98e67b1 100644 --- a/theme/templatetags/issues.py +++ b/theme/templatetags/issues.py @@ -152,7 +152,7 @@ def format_var(value): return get def gen_base(obj): - yield escape(repr(obj)), None + yield escape(str(obj)), None def bracket_wrap(gen, b_open, sep, b_close): yield b_open, None diff --git a/theme/tests.py b/theme/tests.py index f8e6cc1..cd6e168 100644 --- a/theme/tests.py +++ b/theme/tests.py @@ -80,6 +80,14 @@ class TestFormatVar(RegularTestCase): return format_var(var).replace("'", "'") def test_format_var_none(self): + # This is how we've actually observed None values in the SDKs, so we should also handle it + self.assertEqual( + "None", + self._format_var("None"), + ) + + # I _think_ SDKs generally don't send null (None) as a value, but if/when they do we should handle it + # gracefully. See #119 self.assertEqual( "None", self._format_var(None), @@ -92,11 +100,12 @@ class TestFormatVar(RegularTestCase): "c": {"d": 4}, "d": [], "e": {}, - "f": None, + "f": "None", + "g": "", } self.assertEqual( - "{'a': 1, 'b': [2, 3], 'c': {'d': 4}, 'd': [], 'e': {}, 'f': None}", + "{'a': 1, 'b': [2, 3], 'c': {'d': 4}, 'd': [], 'e': {}, 'f': None, 'g': <python obj>}", self._format_var(var), )