From 2c44128aba53f92952671d995b2af4ea0adff92a Mon Sep 17 00:00:00 2001 From: emirng <135670768+emirng@users.noreply.github.com> Date: Thu, 15 Jun 2023 16:06:30 +0200 Subject: [PATCH] Added tests for transport.Message - test from_string (takes pipe in message into account) - test __str__ - (test dict, date and datetime based data) --- src/tests.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/tests.py b/src/tests.py index bea72ae..0ecec3b 100644 --- a/src/tests.py +++ b/src/tests.py @@ -1,6 +1,8 @@ +import datetime import unittest from socker.tree import Tree +from socker.transport import Message class TestTree(unittest.TestCase): @@ -110,5 +112,34 @@ def test_not_matches(self): self.assertNotIn(wildcard_path, matches) +class TestMessage(unittest.TestCase): + + def test_from_string(self): + # This takes having a pipe in the json data into account. The pipe + # has a special purpose but in the context of the json data it should + # be consider a normal character with no purpose. + message = Message.from_string( + 'my name|{"some-key": "some-value", "pipe": "|"}') + self.assertEqual(message.name, "my name") + self.assertEqual(message.data, {"some-key": "some-value", "pipe": "|"}) + + def test___str_(self): + # Test a message with where data is a dict + self.assertEqual( + str(Message('my name', {'data': 1})), 'my name|{"data": 1}') + + # Test a message where data is a date + self.assertEqual( + str(Message('my name', datetime.date(2023, 6, 15))), + 'my name|"2023-06-15"' + ) + + # Test a message where data is a datetime + self.assertEqual( + str(Message('my name', datetime.datetime(2023, 6, 15))), + 'my name|"2023-06-15T00:00:00"' + ) + + if __name__ == '__main__': unittest.main()