ovsdb: Fix formatting of ovs.db.Error on Python 2.6.
authorBen Pfaff <blp@nicira.com>
Tue, 2 Nov 2010 20:13:12 +0000 (13:13 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 2 Nov 2010 20:28:47 +0000 (13:28 -0700)
All of the negative Python OVSDB tests were failing on Python 2.6 because
"%s\n" % e yielded the empty string on that version of Python.  In turn,
that was because ovs.db.error.Error.__unicode__ was being called instead of
ovs.db.error.Error.__str__.  I'm puzzled why that was happening, but this
commit fixes it and also seems like a small code cleanup.

Peter Balland helped me gain some insight on this problem.

CC: Peter Balland <peter@nicira.com>
CC: Reid Price <reid@nicira.com>
python/ovs/db/error.py

index 084db6e2e8ecf14e2568f499a34e54a36891d013..882518cb11604cca4c56f67001ed00e3f9a89d0a 100644 (file)
@@ -16,7 +16,6 @@ import ovs.json
 
 class Error(Exception):
     def __init__(self, msg, json=None, tag=None):
-        Exception.__init__(self)
         self.msg = msg
         self.json = json
         if tag is None:
@@ -27,8 +26,8 @@ class Error(Exception):
         else:
             self.tag = tag
 
-    def __str__(self):
+        # Compose message.
         syntax = ""
         if self.json is not None:
                 syntax = "syntax \"%s\": " % ovs.json.to_string(self.json)
-        return "%s%s: %s" % (syntax, self.tag, self.msg)
+        Exception.__init__(self, "%s%s: %s" % (syntax, self.tag, self.msg))