From: Brian Warner Date: Wed, 25 Feb 2009 08:46:21 +0000 (-0700) Subject: web: fix the ERROR: line to work the same in python2.4 and 2.5 X-Git-Url: https://git.rkrishnan.org/listings/pb3user.py?a=commitdiff_plain;h=63b19e567c4f10bfa48868c0cb55712be13d1c85;p=tahoe-lafs%2Ftahoe-lafs.git web: fix the ERROR: line to work the same in python2.4 and 2.5 --- diff --git a/src/allmydata/test/test_cli.py b/src/allmydata/test/test_cli.py index 0befb075..5dc529a5 100644 --- a/src/allmydata/test/test_cli.py +++ b/src/allmydata/test/test_cli.py @@ -1348,8 +1348,7 @@ class Check(GridTestMixin, CLITestMixin, unittest.TestCase): d.addCallback(lambda ign: self.do_cli("manifest", self.rooturi)) def _manifest_failed((rc, out, err)): self.failIfEqual(rc, 0) - self.failUnlessIn("ERROR: ", err) - self.failUnlessIn("UnrecoverableFileError", err) + self.failUnlessIn("ERROR: UnrecoverableFileError", err) # the fatal directory should still show up, as the last line self.failUnlessIn(" subdir\n", out) d.addCallback(_manifest_failed) @@ -1357,8 +1356,7 @@ class Check(GridTestMixin, CLITestMixin, unittest.TestCase): d.addCallback(lambda ign: self.do_cli("deep-check", self.rooturi)) def _deep_check_failed((rc, out, err)): self.failIfEqual(rc, 0) - self.failUnlessIn("ERROR: ", err) - self.failUnlessIn("UnrecoverableFileError", err) + self.failUnlessIn("ERROR: UnrecoverableFileError", err) # we want to make sure that the error indication is the last # thing that gets emitted self.failIf("done:" in out, out) @@ -1374,8 +1372,7 @@ class Check(GridTestMixin, CLITestMixin, unittest.TestCase): #def _deep_check_repair_failed((rc, out, err)): # self.failIfEqual(rc, 0) # print err - # self.failUnlessIn("ERROR: ", err) - # self.failUnlessIn("UnrecoverableFileError", err) + # self.failUnlessIn("ERROR: UnrecoverableFileError", err) # self.failIf("done:" in out, out) #d.addCallback(_deep_check_repair_failed) diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py index 1663436e..14153530 100644 --- a/src/allmydata/test/test_web.py +++ b/src/allmydata/test/test_web.py @@ -2883,13 +2883,8 @@ class Grid(GridTestMixin, WebErrorMixin, unittest.TestCase, ShouldFailMixin): error_line = lines[first_error] error_msg = lines[first_error+1:] error_msg_s = "\n".join(error_msg) + "\n" - # different pythons repr the exception differently, so sometimes - # we get "ERROR: UnrecoverableFileError", and sometimes we get - # "ERROR: ". - self.failUnlessIn("ERROR: ", error_line) - self.failUnlessIn("UnrecoverableFileError", error_line) - self.failUnlessIn("no recoverable versions", error_line) + self.failUnlessIn("ERROR: UnrecoverableFileError(no recoverable versions)", + error_line) self.failUnless(len(error_msg) > 2, error_msg_s) # some traceback units = [simplejson.loads(line) for line in lines[:first_error]] self.failUnlessEqual(len(units), 5) # includes subdir @@ -2909,9 +2904,8 @@ class Grid(GridTestMixin, WebErrorMixin, unittest.TestCase, ShouldFailMixin): error_line = lines[first_error] error_msg = lines[first_error+1:] error_msg_s = "\n".join(error_msg) + "\n" - self.failUnlessIn("ERROR: ", error_line) - self.failUnlessIn("UnrecoverableFileError", error_line) - self.failUnlessIn("no recoverable versions", error_line) + self.failUnlessIn("ERROR: UnrecoverableFileError(no recoverable versions)", + error_line) self.failUnless(len(error_msg) > 2, error_msg_s) # some traceback units = [simplejson.loads(line) for line in lines[:first_error]] self.failUnlessEqual(len(units), 5) # includes subdir diff --git a/src/allmydata/web/directory.py b/src/allmydata/web/directory.py index 9b49c32e..4a9c8ddb 100644 --- a/src/allmydata/web/directory.py +++ b/src/allmydata/web/directory.py @@ -406,7 +406,8 @@ class DirectoryNodeHandler(RenderMixin, rend.Page, ReplaceMeMixin): d.addErrback(_cancelled) def _error(f): # signal the error as a non-JSON "ERROR:" line, plus exception - msg = "ERROR: %s\n" % repr(f.value) + msg = "ERROR: %s(%s)\n" % (f.value.__class__.__name__, + ", ".join([str(a) for a in f.value.args])) msg += str(f) return msg d.addErrback(_error) @@ -450,7 +451,8 @@ class DirectoryNodeHandler(RenderMixin, rend.Page, ReplaceMeMixin): d.addErrback(_cancelled) def _error(f): # signal the error as a non-JSON "ERROR:" line, plus exception - msg = "ERROR: %s\n" % repr(f.value) + msg = "ERROR: %s(%s)\n" % (f.value.__class__.__name__, + ", ".join([str(a) for a in f.value.args])) msg += str(f) return msg d.addErrback(_error)