| 164 | |
| 165 | |
| 166 | def test_catch_exceptions(): |
| 167 | class CustomError(Exception): |
| 168 | pass |
| 169 | |
| 170 | @click.command() |
| 171 | def cli(): |
| 172 | raise CustomError(1) |
| 173 | |
| 174 | runner = CliRunner() |
| 175 | |
| 176 | result = runner.invoke(cli) |
| 177 | assert isinstance(result.exception, CustomError) |
| 178 | assert type(result.exc_info) is tuple |
| 179 | assert len(result.exc_info) == 3 |
| 180 | |
| 181 | with pytest.raises(CustomError): |
| 182 | runner.invoke(cli, catch_exceptions=False) |
| 183 | |
| 184 | CustomError = SystemExit |
| 185 | |
| 186 | result = runner.invoke(cli) |
| 187 | assert result.exit_code == 1 |
| 188 | |
| 189 | |
| 190 | def test_catch_exceptions_cli_runner(): |