Catch ServerNotFoundError to retry the request (#532)

diff --git a/tests/test_http.py b/tests/test_http.py
index f6beff7..47f9c57 100644
--- a/tests/test_http.py
+++ b/tests/test_http.py
@@ -127,7 +127,9 @@
       self.num_errors -= 1
       if self.num_errors == 1:  # initial == 2
         raise ssl.SSLError()
-      else:  # initial != 2
+      if self.num_errors == 3:  # initial == 4
+        raise httplib2.ServerNotFoundError()
+      else:  # initial != 2,4
         if self.num_errors == 2:
           # first try a broken pipe error (#218)
           ex = socket.error()
@@ -495,14 +497,14 @@
 
   def test_media_io_base_download_retries_connection_errors(self):
     self.request.http = HttpMockWithErrors(
-        3, {'status': '200', 'content-range': '0-2/3'}, b'123')
+        4, {'status': '200', 'content-range': '0-2/3'}, b'123')
 
     download = MediaIoBaseDownload(
         fd=self.fd, request=self.request, chunksize=3)
     download._sleep = lambda _x: 0  # do nothing
     download._rand = lambda: 10
 
-    status, done = download.next_chunk(num_retries=3)
+    status, done = download.next_chunk(num_retries=4)
 
     self.assertEqual(self.fd.getvalue(), b'123')
     self.assertEqual(True, done)
@@ -839,12 +841,12 @@
   def test_retry_connection_errors_non_resumable(self):
     model = JsonModel()
     request = HttpRequest(
-        HttpMockWithErrors(3, {'status': '200'}, '{"foo": "bar"}'),
+        HttpMockWithErrors(4, {'status': '200'}, '{"foo": "bar"}'),
         model.response,
         u'https://www.example.com/json_api_endpoint')
     request._sleep = lambda _x: 0  # do nothing
     request._rand = lambda: 10
-    response = request.execute(num_retries=3)
+    response = request.execute(num_retries=4)
     self.assertEqual({u'foo': u'bar'}, response)
 
   def test_retry_connection_errors_resumable(self):
@@ -856,14 +858,14 @@
 
     request = HttpRequest(
         HttpMockWithErrors(
-            3, {'status': '200', 'location': 'location'}, '{"foo": "bar"}'),
+            4, {'status': '200', 'location': 'location'}, '{"foo": "bar"}'),
         model.response,
         u'https://www.example.com/file_upload',
         method='POST',
         resumable=upload)
     request._sleep = lambda _x: 0  # do nothing
     request._rand = lambda: 10
-    response = request.execute(num_retries=3)
+    response = request.execute(num_retries=4)
     self.assertEqual({u'foo': u'bar'}, response)
 
   def test_retry(self):