From 52ff5006b1c6a04fc52c799052ca38926d9c17ad Mon Sep 17 00:00:00 2001 From: Davide Casale Date: Mon, 6 Feb 2023 19:36:54 +0100 Subject: [PATCH] Add bfxapi/tests/test_labeler.py unit test. --- bfxapi/tests/__init__.py | 2 ++ bfxapi/tests/test_labeler.py | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 bfxapi/tests/test_labeler.py diff --git a/bfxapi/tests/__init__.py b/bfxapi/tests/__init__.py index bbf78c0..25965b4 100644 --- a/bfxapi/tests/__init__.py +++ b/bfxapi/tests/__init__.py @@ -1,6 +1,7 @@ import unittest from .test_rest_serializers_and_types import TestRestSerializersAndTypes from .test_websocket_serializers_and_types import TestWebsocketSerializersAndTypes +from .test_labeler import TestLabeler NAME = "tests" @@ -8,6 +9,7 @@ def suite(): return unittest.TestSuite([ unittest.makeSuite(TestRestSerializersAndTypes), unittest.makeSuite(TestWebsocketSerializersAndTypes), + unittest.makeSuite(TestLabeler), ]) if __name__ == "__main__": diff --git a/bfxapi/tests/test_labeler.py b/bfxapi/tests/test_labeler.py new file mode 100644 index 0000000..721b20e --- /dev/null +++ b/bfxapi/tests/test_labeler.py @@ -0,0 +1,24 @@ +import unittest + +from dataclasses import dataclass +from ..exceptions import LabelerSerializerException +from ..labeler import _Type, generate_labeler_serializer, generate_recursive_serializer + +class TestLabeler(unittest.TestCase): + def test_generate_labeler_serializer(self): + @dataclass + class Test(_Type): + A: int + B: float + C: str + + labels = [ "A", "_PLACEHOLDER", "B", "_PLACEHOLDER", "C" ] + + serializer = generate_labeler_serializer("Test", Test, labels) + + self.assertEqual(serializer.parse(5, None, 65.0, None, "X"), Test(5, 65.0, "X")) + self.assertRaises(LabelerSerializerException, serializer.parse, 5, 65.0, "X") + self.assertListEqual(serializer.get_labels(), [ "A", "B", "C" ]) + +if __name__ == "__main__": + unittest.main() \ No newline at end of file