Empty lines shouldn't get indented. Unittest included.
Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
"""
assert self._indent >= 0
- self._fh.write(self._indent * self.INDENT_STR)
-
if args:
- self._fh.write(txt % args)
+ line = txt % args
else:
- self._fh.write(txt)
+ line = txt
+
+ if line:
+ # Indent only if there's something on the line
+ self._fh.write(self._indent * self.INDENT_STR)
+
+ self._fh.write(line)
self._fh.write("\n")
sw = None
self.assertEqual(buf.getvalue(), "")
+ def testEmptyLines(self):
+ buf = StringIO()
+ sw = utils.ShellWriter(buf)
+
+ def _AddLevel(level):
+ if level == 6:
+ return
+ sw.IncIndent()
+ try:
+ # Add empty line, it should not be indented
+ sw.Write("")
+ sw.Write(str(level))
+ _AddLevel(level + 1)
+ finally:
+ sw.DecIndent()
+
+ _AddLevel(1)
+
+ self.assertEqual(buf.getvalue(),
+ "".join("\n%s%s\n" % (i * " ", i) for i in range(1, 6)))
+
class TestNormalizeAndValidateMac(unittest.TestCase):
def testInvalid(self):