Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(750)

Unified Diff: client/tests/isolate_storage_test.py

Issue 2599493002: Rethrow Isolate gRPC proxy exceptions as IOError (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/isolate_storage.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/tests/isolate_storage_test.py
diff --git a/client/tests/isolate_storage_test.py b/client/tests/isolate_storage_test.py
index 2490e78fccd6a32f1a56d53c05c318d4aa89ea89..33ef8db3b45100a911855742ca47d4d2dfbfd18f 100755
--- a/client/tests/isolate_storage_test.py
+++ b/client/tests/isolate_storage_test.py
@@ -117,12 +117,8 @@ class IsolateStorageTest(auto_stub.TestCase):
s = self.get_server()
replies = s.fetch('abc123')
- got_exception = False
- try:
+ with self.assertRaises(IOError):
_response = replies.next()
- except IOError:
- got_exception = True
- self.assertTrue(got_exception)
def testFetchThrowsOnFailure(self):
"""Fetch: if something goes wrong in Isolate, we throw an exception"""
@@ -136,12 +132,41 @@ class IsolateStorageTest(auto_stub.TestCase):
s = self.get_server()
replies = s.fetch('abc123')
- got_exception = False
- try:
+ with self.assertRaises(IOError):
_response = replies.next()
- except IOError:
- got_exception = True
- self.assertTrue(got_exception)
+
+ def testFetchThrowsCorrectExceptionOnGrpcFailure(self):
+ """Fetch: if something goes wrong in gRPC, we throw an IOError"""
+ def FetchBlobs(_self, _request, timeout=None):
+ del timeout
+ raise isolate_storage.grpc.RpcError('proxy died during initial fetch :(')
+ self.mock(FileServiceStubMock, 'FetchBlobs', FetchBlobs)
+
+ s = self.get_server()
+ replies = s.fetch('abc123')
+ with self.assertRaises(IOError):
+ _response = replies.next()
+
+ def testFetchThrowsCorrectExceptionOnStreamingGrpcFailure(self):
+ """Fetch: if something goes wrong in gRPC, we throw an IOError"""
+ def FetchBlobs(self, request, timeout=None):
+ del timeout
+ self.request = request
+ response = isolate_storage.isolate_bot_pb2.FetchBlobsReply()
+ response.status.succeeded = True
+ for i in range(0, 3):
+ if i is 2:
+ raise isolate_storage.grpc.RpcError(
+ 'proxy died during fetch stream :(')
+ response.data.data = str(i)
+ response.data.offset = i
+ yield response
+ self.mock(FileServiceStubMock, 'FetchBlobs', FetchBlobs)
+
+ s = self.get_server()
+ with self.assertRaises(IOError):
+ for _response in s.fetch('abc123'):
+ pass
def testPushHappySingleSmall(self):
"""Push: send one chunk of small data"""
@@ -224,12 +249,20 @@ class IsolateStorageTest(auto_stub.TestCase):
s = self.get_server()
i = isolate_storage.Item(digest='abc123', size=0)
- got_exception = False
- try:
+ with self.assertRaises(IOError):
+ s.push(i, isolate_storage._IsolateServerGrpcPushState(), '1234')
+
+ def testPushThrowsCorrectExceptionOnGrpcFailure(self):
+ """Push: if something goes wrong in Isolate, we throw an exception"""
+ def PushBlobs(_self, _request, timeout=None):
+ del timeout
+ raise isolate_storage.grpc.RpcError('proxy died during push :(')
+ self.mock(FileServiceStubMock, 'PushBlobs', PushBlobs)
+
+ s = self.get_server()
+ i = isolate_storage.Item(digest='abc123', size=0)
+ with self.assertRaises(IOError):
s.push(i, isolate_storage._IsolateServerGrpcPushState(), '1234')
- except IOError:
- got_exception = True
- self.assertTrue(got_exception)
def testContainsHappySimple(self):
"""Contains: basic sanity check"""
@@ -273,6 +306,21 @@ class IsolateStorageTest(auto_stub.TestCase):
self.assertTrue(items[1] in response)
self.assertTrue(items[2] in response)
+ def testContainsThrowsCorrectExceptionOnGrpcFailure(self):
+ """Contains: the digests are missing"""
+ def Contains(_self, _request, timeout=None):
+ del timeout
+ raise isolate_storage.grpc.RpcError('proxy died during contains :(')
+ self.mock(FileServiceStubMock, 'Contains', Contains)
+
+ items = []
+ for i in range(0, 3):
+ digest = ''.join(['a', str(i)])
+ i = isolate_storage.Item(digest=digest, size=1)
+ items.append(i)
+ s = self.get_server()
+ with self.assertRaises(IOError):
+ _response = s.contains(items)
if __name__ == '__main__':
« no previous file with comments | « client/isolate_storage.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698