source: pyson/test/JsonToolsTest.py@ 297

Last change on this file since 297 was 192, checked in by wouter, 3 years ago

#82 fixed compatibility with python 3.9. pyson now works both with 3.8 and 3.9.

File size: 986 bytes
Line 
1from abc import ABC
2from pyson.JsonSubTypes import JsonSubTypes
3from pyson.JsonTools import getInitArgs, getListClass
4import unittest
5
6
7@JsonSubTypes(["test.JsonToolsTest.B"])
8class A:
9 pass
10
11class B(A):
12 pass
13
14
15class JsonToolsTest(unittest.TestCase):
16
17
18 def testGetInitArgs(self):
19 class ClassWithInitVars:
20 def __init__(self, x:int):
21 y=2
22
23 self.assertEqual({"x":int}, getInitArgs(ClassWithInitVars))
24
25 def testGetInitArgsAbc(self):
26 class BaseClass(ABC):
27 pass
28
29 class ClassWithInitVars2(BaseClass):
30 def __init__(self, x:int):
31 y=2
32
33 self.assertEqual({"x":int}, getInitArgs(ClassWithInitVars2))
34
35 def testGetListTypePrimitiveMixed(self):
36 self.assertEqual(None, getListClass([3, True]))
37
38 def testGetListTypePolymorphicNMixed(self):
39 self.assertEqual(A, getListClass([B(), A(),B()]))
40
Note: See TracBrowser for help on using the repository browser.