Ejemplo n.º 1
0
 def testSingleAttributes(self):
     attr_dict = {
         'int': basics.TypeSet(int),
         'str': basics.TypeSet(str),
         'None': basics.TypeSet(None)
     }
     for name, tp in attr_dict.items():
         self.test_type.add_attr(name, tp)
     for name, tp in attr_dict.items():
         self.assertEqual(self.test_type.get_attr(name), tp)
Ejemplo n.º 2
0
 def testMultiAttributes(self):
     attr_dict = {
         'int': basics.TypeSet(int),
         'str': basics.TypeSet(str),
         'None': basics.TypeSet(None)
     }
     for tp in attr_dict.values():
         self.test_type.add_attr('multi', tp)
     self.assertEqual(self.test_type.get_attr('multi'),
                      basics.TypeSet(int, str, None))
Ejemplo n.º 3
0
    def setUp(self):
        class TempClass1:
            pass

        class TempClass2:
            pass

        self.tc1 = basics.InferredType.from_type(TempClass1)
        self.tc2 = basics.InferredType.from_type(TempClass2)
        self.multiple_types = basics.TypeSet(self.tc1, self.tc2)
        self.l1 = compound.InferredList()
        self.l2 = compound.InferredList()
        self.multiple_lists = basics.TypeSet(self.l1, self.l2)
        self.int = basics.InferredType.from_type(int)
        self.str = basics.InferredType.from_type(str)
        self.float = basics.InferredType.from_type(float)
Ejemplo n.º 4
0
 def testGetAllAttrs(self):
     self.tc1.add_attr('a', self.int)
     self.tc2.add_attr('b', self.str)
     self.tc1.add_attr('c', self.int)
     self.tc2.add_attr('c', self.str)
     self.assertEqual(self.multiple_types.get_all_attrs(), {
         'a': self.int,
         'b': self.str,
         'c': basics.TypeSet(self.int, self.str)
     })
Ejemplo n.º 5
0
 def testGetAttr(self):
     self.tc1.add_attr('tst', self.int)
     self.tc2.add_attr('tst', self.str)
     self.assertEqual(self.multiple_types.get_attr('tst'),
                      basics.TypeSet(self.int, self.str))
Ejemplo n.º 6
0
 def testInitWithSingleType(self):
     st = basics.TypeSet(int)
     self.assertEqual(str(st), "int")
Ejemplo n.º 7
0
 def testRepr(self):
     ts = basics.TypeSet(self.int, self.float)
     self.assertEqual(repr(ts), '<TypeSet: float | int>')
Ejemplo n.º 8
0
 def testGetStarExpansion(self):
     ts = basics.TypeSet(compound.InferredTuple(self.int, self.str),
                         compound.InferredList(self.float))
     self.assertEqual(ts.get_star_expansion(),
                      ['float | int', 'float | str', 'float', 'float'])
Ejemplo n.º 9
0
 def testGetIter(self):
     ts = basics.TypeSet(compound.InferredList(self.int), self.int)
     self.assertEqual(ts.get_iter(), 'Unknown | int')
     ts = basics.TypeSet(compound.InferredList(self.int),
                         compound.InferredList(self.str))
     self.assertEqual(ts.get_iter(), 'int | str')
Ejemplo n.º 10
0
 def testInitWithSingleVal(self):
     st = basics.TypeSet(1)
     self.assertEqual(str(st), "<int>")
Ejemplo n.º 11
0
 def testUnknownAttribute(self):
     self.assertEqual(self.test_type.get_attr('surprise'),
                      basics.TypeSet(basics.UnknownType()))
Ejemplo n.º 12
0
 def testBadCall(self):
     self.assertEqual(self.test_type.get_call_return([]),
                      basics.TypeSet(basics.UnknownType()))
Ejemplo n.º 13
0
 def testInequality(self):
     self.assertNotEqual(basics.TypeSet(int), basics.TypeSet(float))
     self.assertNotEqual(basics.TypeSet(int, float), basics.TypeSet(int))
     self.assertNotEqual(basics.TypeSet(int, float), "int | float")
     self.assertNotEqual(basics.TypeSet(int), [])
Ejemplo n.º 14
0
 def testEquality(self):
     self.assertEqual(basics.TypeSet(int), basics.TypeSet(int))
     self.assertEqual(basics.TypeSet(int, float),
                      basics.TypeSet(int, float))
     self.assertEqual(basics.TypeSet(int, float), "float | int")
Ejemplo n.º 15
0
 def testWithMixedVals(self):
     st = basics.TypeSet(int, "a")
     self.assertEqual(str(st), "<str> | int")
Ejemplo n.º 16
0
 def testWithMultipleVals(self):
     st = basics.TypeSet(1, "a")
     self.assertEqual(str(st), "<int> | <str>")
Ejemplo n.º 17
0
 def testInitWithSingleInferredType(self):
     st = basics.TypeSet(basics.InferredType.from_type(1))
     self.assertEqual(str(st), "<int>")
Ejemplo n.º 18
0
 def testCallVia__call__(self):
     func = functions.FunctionType('test', [], basics.TypeSet(int), '')
     self.test_type.set_attr('__call__', func)
     self.assertEqual(self.test_type.get_call_return([]),
                      basics.TypeSet(int))
Ejemplo n.º 19
0
 def testGetItem(self):
     self.l1.add_item(self.int)
     self.l2.add_item(self.str)
     self.assertEqual(self.multiple_lists.get_item(1),
                      basics.TypeSet(self.int, self.str))
Ejemplo n.º 20
0
 def testReadTypeSet(self):
     self.assertEqual(signatures.read_type('int | str | float', self.scope),
                      basics.TypeSet(self.int, self.str, self.float))
     self.assertEqual(signatures.read_type('int|str|float', self.scope),
                      basics.TypeSet(self.int, self.str, self.float))
Ejemplo n.º 21
0
 def testGetCallReturn(self):
     func1 = functions.FunctionType('f1', [], self.int, '')
     func2 = functions.FunctionType('f2', [], self.str, '')
     ts = basics.TypeSet(func1, func2)
     self.assertEqual(ts.get_call_return([]),
                      basics.TypeSet(self.int, self.str))