def test_deserializes_float(self):
self.assertEqual(1.0, string.deserialize('1.0f'))
+ def test_deserializes_float_with_leading_whitspace(self):
+ self.assertEqual(1.0, string.deserialize(' \t\n1.0f'))
+
def test_deserializes_double(self):
self.assertEqual(1.0, string.deserialize('1.0d'))
+ def test_deserializes_double_with_leading_whitespace(self):
+ self.assertEqual(1.0, string.deserialize(' \t\n1.0d'))
+
def test_deserializes_binary(self):
self.assertEqual(
b'\xde\xad\xbe\xef',
string.deserialize('"deadbeef"b'),
)
+ def test_deserializes_binary_with_leading_whitespace(self):
+ self.assertEqual(
+ b'\xde\xad\xbe\xef',
+ string.deserialize(' \t\n"deadbeef"b'),
+ )
+
def test_deserializes_utf8(self):
self.assertEqual(
"Hello, world",
string.deserialize('"Hello, world"utf32'),
)
+ def test_deserializes_utf8_with_leading_whitespace(self):
+ self.assertEqual(
+ "Hello, world",
+ string.deserialize(' \t\n"Hello, world"utf8'),
+ )
+
+ def test_deserializes_utf16_with_leading_whitespace(self):
+ self.assertEqual(
+ "Hello, world",
+ string.deserialize(' \t\n"Hello, world"utf16'),
+ )
+
+ def test_deserializes_utf32_with_leading_whitespace(self):
+ self.assertEqual(
+ "Hello, world",
+ string.deserialize(' \t\n"Hello, world"utf32'),
+ )
+
def test_deserializes_list(self):
self.assertEqual(
[1,2,3,4,5],
string.deserialize("[1i8,2i8,3i8,4i8,5i8]"),
)
+ def test_deserializes_list_with_leading_whitespace(self):
+ self.assertEqual(
+ [1,2,3,4,5],
+ string.deserialize(" \t\n[ \t\n1i8 \t\n, \t\n2i8 \t\n, \t\n3i8 \t\n, \t\n4i8 \t\n, \t\n5i8 \t\n]"),
+ )
+
def test_deserializes_dictionary(self):
self.assertEqual(
collections.OrderedDict([
string.deserialize('{"foo"utf8:1i32,"bar"utf8:"baz"utf8}'),
)
+ def test_deserializes_dictionary_with_leading_whitespace(self):
+ self.assertEqual(
+ collections.OrderedDict([
+ ('foo', 1),
+ ('bar', 'baz'),
+ ]),
+ string.deserialize(' \t\n{ \t\n"foo"utf8 \t\n: \t\n1i32 \t\n, \t\n"bar"utf8 \t\n: \t\n"baz"utf8 \t\n}'),
+ )
+
unittest.main()