def test(self): buf = StringIO() sw = utils.ShellWriter(buf) sw.Write("#!/bin/bash") sw.Write("if true; then") sw.IncIndent() try: sw.Write("echo true") sw.Write("for i in 1 2 3") sw.Write("do") sw.IncIndent() try: self.assertEqual(sw._indent, 2) sw.Write("date") finally: sw.DecIndent() sw.Write("done") finally: sw.DecIndent() sw.Write("echo %s", utils.ShellQuote("Hello World")) sw.Write("exit 0") self.assertEqual(sw._indent, 0) output = buf.getvalue() self.assertTrue(output.endswith("\n")) lines = output.splitlines() self.assertEqual(len(lines), 9) self.assertEqual(lines[0], "#!/bin/bash") self.assertTrue(re.match(r"^\s+date$", lines[5])) self.assertEqual(lines[7], "echo 'Hello World'")
def testEmptyLinesNoIndent(self): buf = StringIO() sw = utils.ShellWriter(buf, indent=False) self._AddLevel(sw, 1) self.assertEqual(buf.getvalue(), "".join("\n%s\n" % i for i in range(1, 6)))
def testEmptyLines(self): buf = StringIO() sw = utils.ShellWriter(buf) self._AddLevel(sw, 1) self.assertEqual( buf.getvalue(), "".join("\n%s%s\n" % (i * " ", i) for i in range(1, 6)))
def testEmptyNoIndent(self): buf = StringIO() sw = utils.ShellWriter(buf, indent=False) sw = None self.assertEqual(buf.getvalue(), "")
def testEmpty(self): buf = StringIO() sw = utils.ShellWriter(buf) sw = None self.assertEqual(buf.getvalue(), "")