diff --git a/tracker/test/issueattachment_test.py b/tracker/test/issueattachment_test.py
index 8c65014..9fccba5 100644
--- a/tracker/test/issueattachment_test.py
+++ b/tracker/test/issueattachment_test.py
@@ -10,7 +10,6 @@
 
 import unittest
 
-from google.appengine.api import images
 from google.appengine.ext import testbed
 
 import mox
@@ -18,16 +17,12 @@
 
 from framework import gcs_helpers
 from framework import permissions
-from framework import servlet
 from proto import tracker_pb2
 from services import service_manager
 from testing import fake
 from testing import testing_helpers
 from tracker import attachment_helpers
 from tracker import issueattachment
-from tracker import tracker_helpers
-
-from third_party import cloudstorage
 
 
 class IssueattachmentTest(unittest.TestCase):
@@ -41,9 +36,6 @@
     self.testbed.init_urlfetch_stub()
     self.attachment_data = ""
 
-    self._old_gcs_open = cloudstorage.open
-    cloudstorage.open = fake.gcs_open
-
     services = service_manager.Services(
         project=fake.ProjectService(),
         config=fake.ConfigService(),
@@ -74,7 +66,6 @@
     self.mox.UnsetStubs()
     self.mox.ResetAll()
     self.testbed.deactivate()
-    cloudstorage.open = self._old_gcs_open
     attachment_helpers.SignAttachmentID = self.orig_sign_attachment_id
 
   def testGatherPageData_NotFound(self):
diff --git a/tracker/test/issueattachmenttext_test.py b/tracker/test/issueattachmenttext_test.py
index 187aa42..f7dda8d 100644
--- a/tracker/test/issueattachmenttext_test.py
+++ b/tracker/test/issueattachmenttext_test.py
@@ -8,18 +8,15 @@
 from __future__ import division
 from __future__ import absolute_import
 
-import logging
+import mock
 import unittest
-from mock import patch
 
-from google.appengine.ext import testbed
-
-from third_party import cloudstorage
 import ezt
+from google.appengine.ext import testbed
+from google.cloud import storage
 
 import webapp2
 
-from framework import filecontent
 from framework import permissions
 from proto import tracker_pb2
 from services import service_manager
@@ -85,12 +82,18 @@
     services.issue.TestAddAttachment(
         self.attach1, self.comment1.id, self.issue.issue_id)
     # TODO(jrobbins): add tests for binary content
-    self._old_gcs_open = cloudstorage.open
-    cloudstorage.open = fake.gcs_open
+
+    self.client = mock.MagicMock()
+    self.bucket = mock.MagicMock()
+    self.blob = mock.MagicMock()
+    self.client.get_bucket = mock.MagicMock(return_value=self.bucket)
+    self.bucket.get_blob = mock.MagicMock(return_value=self.blob)
+    self.blob.download_as_bytes = mock.MagicMock()
+    mock.patch.object(storage, 'Client', return_value=self.client).start()
 
   def tearDown(self):
     self.testbed.deactivate()
-    cloudstorage.open = self._old_gcs_open
+    mock.patch.stopall()
 
   def testGatherPageData_CommentDeleted(self):
     """If the attachment's comment was deleted, give a 403."""
@@ -155,6 +158,9 @@
     self.assertEqual(404, cm.exception.code)
 
   def testGatherPageData_Normal(self):
+    self.blob.download_as_bytes = mock.MagicMock(
+        return_value='/app_default_bucket/pid/attachments/abcdefg')
+
     _request, mr = testing_helpers.GetRequestObjects(
         project=self.project,
         path='/p/proj/issues/attachmentText?id=1&aid=1234',
@@ -175,7 +181,7 @@
 
     self.assertEqual(None, page_data['code_reviews'])
 
-  @patch('framework.filecontent.DecodeFileContents')
+  @mock.patch('framework.filecontent.DecodeFileContents')
   def testGatherPageData_HugeFile(self, mock_DecodeFileContents):
     _request, mr = testing_helpers.GetRequestObjects(
         project=self.project,
