Fix Checkout.post_processsors setup. __init__() was ignoring the argument!

TEST=Rewrote the unit test to catch that case.

R=dpranke@chromium.org
BUG=

Review URL: http://codereview.chromium.org/7192010

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@89700 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/checkout.py b/checkout.py
index 7b001a8..96289b3 100644
--- a/checkout.py
+++ b/checkout.py
@@ -65,6 +65,7 @@
       post_processor: list of lambda(checkout, patches) to call on each of the
                       modified files.
     """
+    super(CheckoutBase, self).__init__()
     self.root_dir = root_dir
     self.project_name = project_name
     if self.project_name is None:
@@ -73,7 +74,7 @@
       self.project_path = os.path.join(self.root_dir, self.project_name)
     # Only used for logging purposes.
     self._last_seen_revision = None
-    self.post_processors = None
+    self.post_processors = post_processors
     assert self.root_dir
     assert self.project_path
 
@@ -159,6 +160,7 @@
 class SvnConfig(object):
   """Parses a svn configuration file."""
   def __init__(self, svn_config_dir=None):
+    super(SvnConfig, self).__init__()
     self.svn_config_dir = svn_config_dir
     self.default = not bool(self.svn_config_dir)
     if not self.svn_config_dir:
@@ -241,7 +243,8 @@
   """Manages a subversion checkout."""
   def __init__(self, root_dir, project_name, commit_user, commit_pwd, svn_url,
       post_processors=None):
-    super(SvnCheckout, self).__init__(root_dir, project_name, post_processors)
+    CheckoutBase.__init__(self, root_dir, project_name, post_processors)
+    SvnMixIn.__init__(self)
     self.commit_user = commit_user
     self.commit_pwd = commit_pwd
     self.svn_url = svn_url
@@ -514,8 +517,9 @@
       commit_user, commit_pwd,
       svn_url, trunk, post_processors=None):
     """trunk is optional."""
-    super(GitSvnCheckoutBase, self).__init__(
-        root_dir, project_name + '.git', remote_branch, post_processors)
+    GitCheckoutBase.__init__(
+        self, root_dir, project_name + '.git', remote_branch, post_processors)
+    SvnMixIn.__init__(self)
     self.commit_user = commit_user
     self.commit_pwd = commit_pwd
     # svn_url in this case is the root of the svn repository.
@@ -686,6 +690,7 @@
 class ReadOnlyCheckout(object):
   """Converts a checkout into a read-only one."""
   def __init__(self, checkout):
+    super(ReadOnlyCheckout, self).__init__()
     self.checkout = checkout
 
   def prepare(self, revision):