def testSafeEval(self): for s in ['1', '()', '(1,)', '[]', '{}', '{1:2}', '{1:(2,3)}', '1.0', '[1,2,3]', 'True', 'False', 'None', '(True,False,None)', '"foo"', '{"foo": "bar"}']: self.assertEqual(eval(s), utils.safeEval(s)) for s in ['lambda: 2', 'import foo', 'foo.bar']: self.assertRaises(ValueError, utils.safeEval, s)
def set(self, s): if not s: s = '""' elif s[0] != s[-1] or s[0] not in '\'"': s = repr(s) try: v = utils.safeEval(s) if not isinstance(v, basestring): raise ValueError self.setValue(v) except ValueError: # This catches utils.safeEval(s) errors too. self.error()
def set(self, s): v = s if not v: v = '""' elif v[0] != v[-1] or v[0] not in '\'"': v = repr(v) try: v = utils.safeEval(v) if not isinstance(v, basestring): raise ValueError self.setValue(v) except ValueError: # This catches utils.safeEval(s) errors too. self.error(s)