test_typechecker.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:pytypes 作者: Stewori 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号