diff --git a/PRESUBMIT_test_mocks.py b/PRESUBMIT_test_mocks.py
index 03d9232..8e15d8c 100644
--- a/PRESUBMIT_test_mocks.py
+++ b/PRESUBMIT_test_mocks.py
@@ -32,6 +32,9 @@
   def AffectedSourceFiles(self, file_filter=None):
     return self.files
 
+  def LocalPaths(self):
+    return self.files
+
   def PresubmitLocalPath(self):
     return os.path.dirname(__file__)
 
@@ -62,22 +65,22 @@
       return self.message
 
   class PresubmitError(PresubmitResult):
-    def __init__(self, message, items, long_text=''):
+    def __init__(self, message, items=None, long_text=''):
       MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
       self.type = 'error'
 
   class PresubmitPromptWarning(PresubmitResult):
-    def __init__(self, message, items, long_text=''):
+    def __init__(self, message, items=None, long_text=''):
       MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
       self.type = 'warning'
 
   class PresubmitNotifyResult(PresubmitResult):
-    def __init__(self, message, items, long_text=''):
+    def __init__(self, message, items=None, long_text=''):
       MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
       self.type = 'notify'
 
   class PresubmitPromptOrNotify(PresubmitResult):
-    def __init__(self, message, items, long_text=''):
+    def __init__(self, message, items=None, long_text=''):
       MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
       self.type = 'promptOrNotify'
 
@@ -103,6 +106,14 @@
   def LocalPath(self):
     return self._local_path
 
+  def rfind(self, p):
+    """os.path.basename is called on MockFile so we need an rfind method."""
+    return self._local_path.rfind(p)
+
+  def __getitem__(self, i):
+    """os.path.basename is called on MockFile so we need a get method."""
+    return self._local_path[i]
+
 
 class MockAffectedFile(MockFile):
   def AbsoluteLocalPath(self):
