Add bfxapi/tests/test_labeler.py unit test.

This commit is contained in:
Davide Casale
2023-02-06 19:36:54 +01:00
parent c588d9f20c
commit 52ff5006b1
2 changed files with 26 additions and 0 deletions

View File

@@ -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__":

View File

@@ -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()