def test_known_error_debug(self): """Test a known error exit in debug mode.""" with self.assertRaisesRegex(DakaraError, "error"): with handle_all_exceptions("url", debug=True) as exit_value: raise DakaraError("error") self.assertEqual(exit_value.value, 1)
def test_unknown_error_debug(self): """Test an unknown error exit in debug mode.""" with self.assertRaisesRegex(Exception, "error"): with handle_all_exceptions("url", debug=True) as exit_value: raise Exception("error") self.assertEqual(exit_value.value, 2)
def test_known_error(self): """Test a known error exit.""" with self.assertLogs("dakara_base.exceptions") as logger: with handle_all_exceptions("url") as exit_value: raise DakaraError("error") self.assertEqual(exit_value.value, 1) self.assertListEqual(logger.output, ["CRITICAL:dakara_base.exceptions:error"])
def test_keyboard_interrupt(self): """Test a Ctrl+C exit.""" with self.assertLogs("dakara_base.exceptions") as logger: with handle_all_exceptions("url") as exit_value: raise KeyboardInterrupt self.assertEqual(exit_value.value, 255) self.assertListEqual(logger.output, ["INFO:dakara_base.exceptions:Quit by user"])
def test_keyboard_interrupt_already_caught(self): """Test a Ctrl+C exit that is caught by the executed block.""" with handle_all_exceptions("url") as exit_value: try: raise KeyboardInterrupt except KeyboardInterrupt: pass self.assertEqual(exit_value.value, 0)
def test_unknown_error(self): """Test an unknown error exit.""" with self.assertLogs("dakara_base.exceptions") as logger: with handle_all_exceptions("url") as exit_value: raise Exception("error") self.assertEqual(exit_value.value, 2) self.assertListEqual( logger.output, [ ANY, "CRITICAL:dakara_base.exceptions:Please fill a bug report at 'url'" ], )
def test_normal_exit(self): """Test a normal exit.""" with handle_all_exceptions("url") as exit_value: pass self.assertEqual(exit_value.value, 0)