X-Git-Url: https://code.kerkeslager.com/?p=ton;a=blobdiff_plain;f=test_don.py;h=46034eca6c4d6119a28787d9f854539a0c8215fa;hp=1eb8f5d92237e4eb1fa99c9b20eb26daff7a9e9b;hb=b3b37a652de06531af2ca1e6c127bc0e7a774f57;hpb=9bc21c12de07b6bacc384371d73601c1bfcfe95c diff --git a/test_don.py b/test_don.py index 1eb8f5d..46034ec 100644 --- a/test_don.py +++ b/test_don.py @@ -1,9 +1,7 @@ import collections import unittest -import don -from don import binary -from don import string +from don import binary, string, tags class TestBinarySerialize(unittest.TestCase): def test_serializes_null(self): @@ -116,9 +114,98 @@ class TestBinaryDeserialize(unittest.TestCase): class TestStringSerialize(unittest.TestCase): - pass + def test_serializes_null(self): + self.assertEqual(string.serialize(None), 'null') + + def test_serializes_true(self): + self.assertEqual(string.serialize(True), 'true') + + def test_serializes_false(self): + self.assertEqual(string.serialize(False), 'false') + + def test_serializes_int8(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT8, 1)), '1i8') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT8, -1)), '-1i8') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT8, 42)), '42i8') + + def test_serializes_int16(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT16, 1)), '1i16') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT16, -1)), '-1i16') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT16, 42)), '42i16') + + def test_serializes_int32(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT32, 1)), '1i32') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT32, -1)), '-1i32') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT32, 42)), '42i32') + + def test_serializes_int64(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT64, 1)), '1i64') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT64, -1)), '-1i64') + self.assertEqual(string.serialize(tags.TaggedObject(tags.INT64, 42)), '42i64') + + def test_serializes_float(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.FLOAT, 1.0)), '1.0f') + + def test_serializes_double(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.DOUBLE, 1.0)), '1.0d') + + def test_serializes_binary(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.BINARY, b'\xde\xad\xbe\xef')), '"deadbeef"b') + + def test_serializes_utf8(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.UTF8, 'Hello, world')), '"Hello, world"utf8') + + def test_serializes_utf16(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.UTF16, 'Hello, world')), '"Hello, world"utf16') + + def test_serializes_utf32(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.UTF32, 'Hello, world')), '"Hello, world"utf32') + + def test_serializes_list(self): + self.assertEqual(string.serialize(tags.TaggedObject(tags.LIST, [1,2,3])), '[1i32, 2i32, 3i32]') + + def test_serializes_dictionary(self): + self.assertEqual( + string.serialize(tags.TaggedObject(tags.DICTIONARY, collections.OrderedDict([ + ('foo', 1), + ('bar', 'baz'), + ]))), + '{ "foo"utf8: 1i32, "bar"utf8: "baz"utf8 }' + ) class TestStringDeserialize(unittest.TestCase): - pass + def test_deserializes_null(self): + self.assertEqual( + None, + string.deserialize('null'), + ) + + def test_deserializes_null(self): + self.assertEqual( + True, + string.deserialize('true'), + ) + + def test_deserializes_null(self): + self.assertEqual( + False, + string.deserialize('false'), + ) + + def test_deserializes_int8(self): + self.assertEqual(10, string.deserialize('10i8')) + self.assertEqual(-1, string.deserialize('-1i8')) + + def test_deserializes_int16(self): + self.assertEqual(10, string.deserialize('10i16')) + self.assertEqual(-1, string.deserialize('-1i16')) + + def test_deserializes_int32(self): + self.assertEqual(10, string.deserialize('10i32')) + self.assertEqual(-1, string.deserialize('-1i32')) + + def test_deserializes_int64(self): + self.assertEqual(10, string.deserialize('10i64')) + self.assertEqual(-1, string.deserialize('-1i64')) unittest.main()