Assert the parser prints the expected output on stdout.
(self,
cmdline_args,
expected_output,
expected_status=0,
expected_error=None)
| 149 | self.assertFalse("expected parse failure") |
| 150 | |
| 151 | def assertOutput(self, |
| 152 | cmdline_args, |
| 153 | expected_output, |
| 154 | expected_status=0, |
| 155 | expected_error=None): |
| 156 | """Assert the parser prints the expected output on stdout.""" |
| 157 | save_stdout = sys.stdout |
| 158 | try: |
| 159 | try: |
| 160 | sys.stdout = StringIO() |
| 161 | self.parser.parse_args(cmdline_args) |
| 162 | finally: |
| 163 | output = sys.stdout.getvalue() |
| 164 | sys.stdout = save_stdout |
| 165 | |
| 166 | except InterceptedError as err: |
| 167 | self.assertTrue( |
| 168 | isinstance(output, str), |
| 169 | "expected output to be an ordinary string, not %r" |
| 170 | % type(output)) |
| 171 | |
| 172 | if output != expected_output: |
| 173 | self.fail("expected: \n'''\n" + expected_output + |
| 174 | "'''\nbut got \n'''\n" + output + "'''") |
| 175 | self.assertEqual(err.exit_status, expected_status) |
| 176 | self.assertEqual(err.exit_message, expected_error) |
| 177 | else: |
| 178 | self.assertFalse("expected parser.exit()") |
| 179 | |
| 180 | def assertTypeError(self, func, expected_message, *args): |
| 181 | """Assert that TypeError is raised when executing func.""" |
no test coverage detected