From 08091059cdc4cf1d39e08fedef77d8e8fc732224 Mon Sep 17 00:00:00 2001 From: Leif Walsh Date: Sat, 22 Sep 2018 18:58:23 -0400 Subject: [PATCH] Format multiline locals by indenting all lines uniformly #92 --- marbles/core/marbles/core/marbles.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/marbles/core/marbles/core/marbles.py b/marbles/core/marbles/core/marbles.py index 76b6fa8..c44b82c 100644 --- a/marbles/core/marbles/core/marbles.py +++ b/marbles/core/marbles/core/marbles.py @@ -328,9 +328,19 @@ def formattedMsg(self): # mimic unittest's name for standardMsg standardMsg=self.standardMsg, assert_stmt=self.assert_stmt, note=self.note, locals=local_string, filename=self.filename) + @classmethod + def _format_one_local(cls, name, value): + value_str = repr(value) + if '\n' in value_str: + value_str = textwrap.indent(value_str, '\t\t') + return '\t{0} =\n{1}'.format(name, value_str) + else: + return '\t{0} = {1}'.format(name, value_str) + @classmethod def _format_locals(cls, locals_): - return '\n'.join('\t{0}={1}'.format(k, v) for k, v in locals_.items()) + return '\n'.join(cls._format_one_local(k, v) + for k, v in locals_.items()) @staticmethod def _find_assert_stmt(filename, linenumber, leading=1, following=2,