def test_defaults_inferred_types(self):
tmp = pytypes.infer_default_value_types
pytypes.infer_default_value_types = True
self.assertEqual(get_types(func_defaults_typecheck),
(Tuple[str, Any, int, float], str))
self.assertEqual(pytypes.get_type_hints(func_defaults_typecheck),
{'a': str, 'c': int, 'return': str, 'd': float})
self.assertEqual(func_defaults_typecheck('qvw', 'abc', 2, 1.5), 'qvwabcabc')
self.assertRaises(InputTypeError, lambda:
func_defaults_typecheck('qvw', 'abc', 3.5))
self.assertEqual(func_defaults_typecheck2('test', 12.2, 123), 'test1500.6False')
self.assertRaises(InputTypeError, lambda:
func_defaults_typecheck2('test', 12.2, 123, 3.5))
self.assertRaises(InputTypeError, lambda:
func_defaults_typecheck('qvw', 'abc', 3.5, 4.1))
self.assertRaises(InputTypeError, lambda: func_defaults_typecheck(7, 'qvw'))
self.assertEqual(func_defaults_checkargs('qvw', 'abc', 3, 1.5), 'qvwabcabcabc')
self.assertRaises(InputTypeError, lambda:
func_defaults_checkargs('qvw', 'abc', 3.5))
self.assertRaises(InputTypeError, lambda:
func_defaults_checkargs('qvw', 'abc', 3.5, 4.1))
self.assertRaises(InputTypeError, lambda: func_defaults_checkargs(7, 'qvw'))
self.assertEqual(get_types(func_defaults_annotations),
(Tuple[str, Any, int], str))
self.assertEqual(pytypes.get_type_hints(func_defaults_annotations),
{'a': str, 'c': int, 'return': str})
self.assertEqual(func_defaults_annotations.__annotations__,
{'a': str, 'return': str})
pytypes.infer_default_value_types = False
self.assertEqual(get_types(func_defaults_typecheck),
(Tuple[str, Any, Any, Any], str))
self.assertEqual(pytypes.get_type_hints(func_defaults_typecheck),
{'a': str, 'return': str})
self.assertEqual(func_defaults_typecheck('qvw', 'abc', 3.5), 'invalid')
self.assertEqual(func_defaults_typecheck('qvw', 'abc', 3.5, 4.1), 'invalid')
self.assertRaises(InputTypeError, lambda: func_defaults_typecheck(7, 'qvw'))
self.assertEqual(func_defaults_checkargs('qvw', 'abc', 3, 1.5), 'qvwabcabcabc')
self.assertEqual(func_defaults_checkargs('qvw', 'abc', 3.5), 'invalid')
self.assertEqual(func_defaults_checkargs('qvw', 'abc', 3.5, 4.1), 'invalid')
self.assertRaises(InputTypeError, lambda: func_defaults_checkargs(7, 'qvw'))
self.assertEqual(get_types(func_defaults_annotations),
(Tuple[str, Any, Any], str))
self.assertEqual(pytypes.get_type_hints(func_defaults_annotations),
{'a': str, 'return': str})
self.assertEqual(func_defaults_annotations.__annotations__,
{'a': str, 'return': str})
pytypes.infer_default_value_types = tmp
评论列表
文章目录