source: pyson/test/JsonToolsTest.py@ 190

Last change on this file since 190 was 175, checked in by wouter, 3 years ago

Allow polymorphic list - type of list is the (possibly abstract) superclass type

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