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())
def test_Bool(self): 'Test pyson.Bool' self.assertEqual( pyson.Bool('test').pyson(), { '__class__': 'Bool', 'v': 'test', }) self.assertEqual(pyson.Bool('test').types(), set([bool])) eval = pyson.PYSONEncoder().encode(pyson.Bool(True)) self.assertTrue(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool(False)) self.assertFalse(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool('test')) self.assertTrue(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool('')) self.assertFalse(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool(1)) self.assertTrue(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool(0)) self.assertFalse(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool(['test'])) self.assertTrue(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool([])) self.assertFalse(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool({'foo': 'bar'})) self.assertTrue(pyson.PYSONDecoder().decode(eval)) eval = pyson.PYSONEncoder().encode(pyson.Bool({})) self.assertFalse(pyson.PYSONDecoder().decode(eval)) self.assertEqual(repr(pyson.Bool('test')), "Bool('test')")