MountStorage: Some small fixups/changes.
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Sat, 23 Jul 2011 13:27:02 +0000 (15:27 +0200)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Mon, 1 Aug 2011 21:50:39 +0000 (23:50 +0200)
1) A bit more assert.

2) Change __repr__ to use lists for the recursion parameter.

mediagoblin/storage.py

index 3d5ce9abbdbfd739dff4501c2083d7fdc4ea72db..d994268b94b729231bf0b24ca389a1cb7fe2e3c6 100644 (file)
@@ -237,6 +237,7 @@ class MountStorage(StorageInterface):
         for part in rem_2:
             table[part] = {}
             table = table[part]
+        assert not table.has_key(None), "Huh? Already mounted?!"
         table[None] = backend
 
     def resolve_to_backend(self, filepath, extra_info = False):
@@ -272,19 +273,19 @@ class MountStorage(StorageInterface):
         else:
             return (res_be, res_fp)
 
-    def __repr__(self, table = None, indent = ""):
+    def __repr__(self, table = None, indent = []):
         res = []
         if table is None:
             res.append("MountStorage<")
             table = self.mounttab
         v = table.get(None)
         if v:
-            res.append(indent + "On this level: " + repr(v))
+            res.append("  " * len(indent) + repr(indent) + ": " + repr(v))
         for k, v in table.iteritems():
             if k == None:
                 continue
-            res.append(indent + repr(k) + ":")
-            res += self.__repr__(v, indent + "  ")
+            res.append("  " * len(indent) + repr(k) + ":")
+            res += self.__repr__(v, indent + [k])
         if table is self.mounttab:
             res.append(">")
             return "\n".join(res)