From 23e3a854620839d96b58d60386fd0f9d4ccb64fc 2009-04-26 04:26:19
From: Brian Granger <ellisonbg@gmail.com>
Date: 2009-04-26 04:26:19
Subject: [PATCH] Fixing mysterious bug in IEnginePropertiesTestCase.strictDict.

This one was showing up as a tokenizer error.

---

diff --git a/IPython/kernel/engineservice.py b/IPython/kernel/engineservice.py
index 199d5ef..b400320 100644
--- a/IPython/kernel/engineservice.py
+++ b/IPython/kernel/engineservice.py
@@ -269,8 +269,8 @@ class StrictDict(dict):
             pickle.dumps(key, 2)
             pickle.dumps(value, 2)
             newvalue = copy.deepcopy(value)
-        except:
-            raise error.InvalidProperty(value)
+        except Exception, e:
+            raise error.InvalidProperty("can't be a value: %r" % value)
         dict.__setitem__(self, key, newvalue)
         self.modified = True
     
diff --git a/IPython/kernel/tests/engineservicetest.py b/IPython/kernel/tests/engineservicetest.py
index 9544db3..ebb0587 100644
--- a/IPython/kernel/tests/engineservicetest.py
+++ b/IPython/kernel/tests/engineservicetest.py
@@ -363,7 +363,8 @@ class IEnginePropertiesTestCase(object):
 p = get_engine(%s).properties"""%self.engine.id
         d = self.engine.execute(s)
         d.addCallback(lambda r: self.engine.execute("p['a'] = lambda _:None"))
-        d = self.assertDeferredRaises(d, error.InvalidProperty)
+        d.addErrback(lambda f: self.assertRaises(error.InvalidProperty,
+            f.raiseException))
         d.addCallback(lambda r: self.engine.execute("p['a'] = range(5)"))
         d.addCallback(lambda r: self.engine.execute("p['a'].append(5)"))
         d.addCallback(lambda r: self.engine.get_properties('a'))