X-Git-Url: https://code.kerkeslager.com/?a=blobdiff_plain;f=test_don.py;h=df9130960c5e892cd0fe1bf4ef4f7fc3fa648e75;hb=d863068322ef1404cd5b95a8f21b3d2836f942bf;hp=1eb8f5d92237e4eb1fa99c9b20eb26daff7a9e9b;hpb=9bc21c12de07b6bacc384371d73601c1bfcfe95c;p=ton diff --git a/test_don.py b/test_don.py index 1eb8f5d..df91309 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,82 @@ 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'), + ) unittest.main()