def test_traceback_str_without_request_errors(self): message = "test plain traceback string" test_exc = arv_error.KeepRequestError(message) exc_report = self.traceback_str(test_exc) self.assertRegex(exc_report, r"^(arvados\.errors\.)?KeepRequestError: ") self.assertIn(message, exc_report)
def test_traceback_str_with_request_errors(self): message = "test traceback shows Keep services" test_exc = arv_error.KeepRequestError(message, self.REQUEST_ERRORS[:]) exc_report = self.traceback_str(test_exc) self.assertTrue(exc_report.startswith("KeepRequestError: ")) for expect_substr in [ message, "raised IOError", "raised MemoryError", "test MemoryError", "second test IOError", "responded with 500 Internal Server Error" ]: self.assertIn(expect_substr, exc_report) # Assert the report maintains order of listed services. last_index = -1 for service_key, _ in self.REQUEST_ERRORS: service_index = exc_report.find(service_key) self.assertGreater(service_index, last_index) last_index = service_index
def test_traceback_str_with_request_errors(self): message = "test traceback shows Keep services" test_exc = arv_error.KeepRequestError(message, self.REQUEST_ERRORS[:]) exc_report = self.traceback_str(test_exc) self.assertRegex(exc_report, r"^(arvados\.errors\.)?KeepRequestError: ") self.assertIn(message, exc_report) for expect_re in [ r"raised (IOError|OSError)", # IOError in Python2, OSError in Python3 r"raised MemoryError", r"test MemoryError", r"second test IOError", r"responded with 500 Internal Server Error"]: self.assertRegex(exc_report, expect_re) # Assert the report maintains order of listed services. last_index = -1 for service_key, _ in self.REQUEST_ERRORS: service_index = exc_report.find(service_key) self.assertGreater(service_index, last_index) last_index = service_index
def test_traceback_str_without_request_errors(self): message = "test plain traceback string" test_exc = arv_error.KeepRequestError(message) exc_report = self.traceback_str(test_exc) self.assertTrue(exc_report.startswith("KeepRequestError: ")) self.assertIn(message, exc_report)
def test_empty_exception(self): test_exc = arv_error.KeepRequestError() self.assertFalse(test_exc.message) self.assertEqual({}, test_exc.request_errors())
def check_get_request_errors(self, *args): expected = dict(args[0]) if args else {} test_exc = arv_error.KeepRequestError("test service exceptions", *args) self.assertEqual(expected, test_exc.request_errors())
def check_get_message(self, *args): test_exc = arv_error.KeepRequestError("test message", *args) self.assertEqual("test message", test_exc.message)