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