def test_general_exception_with_mixed_errors(self): # get should raise a NotFoundError if no server returns the block, # and a high threshold of servers report that it's not found. # This test rigs up 50/50 disagreement between two servers, and # checks that it does not become a NotFoundError. client = self.new_client() with tutil.mock_get_responses(self.DEFAULT_EXPECT, 404, 500): with self.assertRaises(arvados.errors.KeepReadError) as exc_check: client.get(self.HINTED_LOCATOR) self.assertNotIsInstance(exc_check.exception, arvados.errors.NotFoundError, "mixed errors raised NotFoundError")
def test_hint_server_can_succeed_without_retries(self): with tutil.mock_get_responses(self.DEFAULT_EXPECT, 404, 200, 500): self.check_success(locator=self.HINTED_LOCATOR)
def test_specific_exception_when_not_found(self): with tutil.mock_get_responses(self.DEFAULT_EXPECT, 404, 200): self.check_exception(arvados.errors.NotFoundError, num_retries=3)
def test_method_retries_take_precedence(self): with tutil.mock_get_responses('', 500, 500, 500, 200): reader = self.reader_for('user_agreement', num_retries=10) with self.assertRaises(arvados.errors.KeepReadError): self.read_for_test(reader, 10, num_retries=1)
def test_read_method_retries_exhausted(self): with tutil.mock_get_responses('bar', 500, 500, 500, 500, 200): reader = self.reader_for('bar_file') with self.assertRaises(arvados.errors.KeepReadError): self.read_for_test(reader, 3, num_retries=3)
def test_read_with_method_retries(self): with tutil.mock_get_responses('foo', 500, 200): reader = self.reader_for('foo_file') self.assertEqual('foo', self.read_for_test(reader, 3, num_retries=3))
def test_read_no_default_retry(self): with tutil.mock_get_responses('', 500): reader = self.reader_for('user_agreement') with self.assertRaises(arvados.errors.KeepReadError): self.read_for_test(reader, 10)
def test_success_without_retries(self): with tutil.mock_get_responses('bar', 200): reader = self.reader_for('bar_file') self.assertEqual('bar', self.read_for_test(reader, 3))