devtools/testlib.py
changeset 5048 bf8a53a11b6d
parent 5004 4cc020ee70e2
parent 5036 3e436a494ce3
child 5082 d6fd82a5a4e8
--- a/devtools/testlib.py	Fri Mar 26 16:15:16 2010 +0100
+++ b/devtools/testlib.py	Fri Mar 26 16:15:41 2010 +0100
@@ -251,7 +251,14 @@
 
     def setUp(self):
         pause_tracing()
-        self._init_repo()
+        previous_failure = self.__class__.__dict__.get('_repo_init_failed')
+        if previous_failure is not None:
+            self.skip('repository is not initialised: %r' % previous_failure)
+        try:
+            self._init_repo()
+        except Exception, ex:
+            self.__class__._repo_init_failed = ex
+            raise
         resume_tracing()
         self.setup_database()
         self.commit()
@@ -495,7 +502,8 @@
             else:
                 cleanup = lambda p: (p[0], unquote(p[1]))
                 params = dict(cleanup(p.split('=', 1)) for p in params.split('&') if p)
-            path = path[len(req.base_url()):]
+            if path.startswith(req.base_url()): # may be relative
+                path = path[len(req.base_url()):]
             return path, params
         else:
             self.fail('expected a Redirect exception')