def test_Equal(self): 'Test pyson.Equal' self.assertEqual(pyson.Equal('test', 'test').pyson(), { '__class__': 'Equal', 's1': 'test', 's2': 'test', }) self.assertRaises(AssertionError, pyson.Equal, 'test', True) self.assertEqual(pyson.Equal('test', 'test').types(), set([bool])) eval = pyson.PYSONEncoder().encode(pyson.Equal('test', 'test')) self.assertTrue(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Equal('foo', 'bar')) self.assertFalse(pyson.PYSONDecoder().decode(eval)) self.assertEqual(repr(pyson.Equal('foo', 'bar')), "Equal('foo', 'bar')")
def test_noeval(self): decoder = pyson.PYSONDecoder(noeval=True) encoder = pyson.PYSONEncoder() for instance in [ pyson.Eval('test', 0), pyson.Not(True), pyson.Bool('test'), pyson.And(True, False, True), pyson.Or(False, True, True), pyson.Equal('foo', 'bar'), pyson.Greater(1, 0), pyson.Less(0, 1), pyson.If(True, 'foo', 'bar'), pyson.Get({'foo': 'bar'}, 'foo', 'default'), pyson.In('foo', ['foo', 'bar']), pyson.Date(), pyson.DateTime(), pyson.Len([1, 2, 3]), ]: self.assertEqual(decoder.decode(encoder.encode(instance)).pyson(), instance.pyson())