コード例 #1
0
 def test_build_module_stubs(self):
     entries = [
         FunctionDefinition.from_callable(Dummy.a_static_method),
         FunctionDefinition.from_callable(Dummy.a_class_method.__func__),
         FunctionDefinition.from_callable(Dummy.an_instance_method),
         FunctionDefinition.from_callable(simple_add),
     ]
     simple_add_stub = _func_stub_from_callable(simple_add)
     to_strip = ['typing']
     dummy_stub = ClassStub(
         'Dummy',
         function_stubs=[
             _func_stub_from_callable(Dummy.a_class_method.__func__,
                                      to_strip),
             _func_stub_from_callable(Dummy.an_instance_method, to_strip),
             _func_stub_from_callable(Dummy.a_static_method, to_strip),
         ])
     imports = {'typing': {'Any', 'Optional'}}
     expected = {
         'tests.test_stubs':
         ModuleStub(function_stubs=[simple_add_stub]),
         'tests.util':
         ModuleStub(class_stubs=[dummy_stub],
                    imports_stub=ImportBlockStub(imports)),
     }
     self.maxDiff = None
     assert build_module_stubs(entries) == expected
コード例 #2
0
ファイル: test_stubs.py プロジェクト: tyrinwu/MonkeyType
 def test_render(self):
     cm_stub = _func_stub_from_callable(Dummy.a_class_method)
     im_stub = _func_stub_from_callable(Dummy.an_instance_method)
     func_stubs = (cm_stub, im_stub)
     test_stub = ClassStub('Test', function_stubs=func_stubs)
     test2_stub = ClassStub('Test2', function_stubs=func_stubs)
     class_stubs = (test_stub, test2_stub)
     mod_stub = ModuleStub(function_stubs=func_stubs, class_stubs=class_stubs)
     expected = "\n\n\n".join([
         cm_stub.render(),
         im_stub.render(),
         test_stub.render(),
         test2_stub.render(),
     ])
     assert mod_stub.render() == expected
コード例 #3
0
 def test_render(self):
     cm_stub = _func_stub_from_callable(Dummy.a_class_method)
     im_stub = _func_stub_from_callable(Dummy.an_instance_method)
     func_stubs = (cm_stub, im_stub)
     test_stub = ClassStub('Test', function_stubs=func_stubs)
     test2_stub = ClassStub('Test2', function_stubs=func_stubs)
     other_class_stubs = module_stub_for_method_with_typed_dict['tests.util'].class_stubs.values()
     class_stubs = (*other_class_stubs, test_stub, test2_stub)
     typed_dict_class_stubs = module_stub_for_method_with_typed_dict['tests.util'].typed_dict_class_stubs
     mod_stub = ModuleStub(function_stubs=func_stubs,
                           class_stubs=class_stubs,
                           typed_dict_class_stubs=typed_dict_class_stubs)
     expected = '\n'.join([
         'class DummyAnInstanceMethodTypedDict(TypedDict):',
         '    c: int',
         '',
         '',
         'class FooTypedDict(TypedDict):',
         '    a: int',
         '    b: str',
         '',
         '',
         '@classmethod',
         'def a_class_method(foo: Any) -> Optional[frame]: ...',
         '',
         '',
         'def an_instance_method(self, foo: Any, bar: Any) -> Optional[frame]: ...',
         '',
         '',
         'class Dummy:',
         '    def an_instance_method(self, foo: \'FooTypedDict\', bar: int) '
         + '-> \'DummyAnInstanceMethodTypedDict\': ...',
         '',
         '',
         'class Test:',
         '    @classmethod',
         '    def a_class_method(foo: Any) -> Optional[frame]: ...',
         '    def an_instance_method(self, foo: Any, bar: Any) -> Optional[frame]: ...',
         '',
         '',
         'class Test2:',
         '    @classmethod',
         '    def a_class_method(foo: Any) -> Optional[frame]: ...',
         '    def an_instance_method(self, foo: Any, bar: Any) -> Optional[frame]: ...',
     ])
     assert mod_stub.render() == expected
コード例 #4
0
 def test_build_index(self):
     idxb = StubIndexBuilder('tests')
     idxb.log(CallTrace(untyped_helper, {'x': int, 'y': str}, str))
     sig = Signature.from_callable(untyped_helper)
     sig = sig.replace(parameters=[
         Parameter('x', Parameter.POSITIONAL_OR_KEYWORD, annotation=int),
         Parameter('y', Parameter.POSITIONAL_OR_KEYWORD, annotation=str),
     ],
                       return_annotation=str)
     mod_stub = ModuleStub(function_stubs=[
         FunctionStub('untyped_helper', sig, FunctionKind.MODULE)
     ])
     expected = {'tests.test_stubs': mod_stub}
     assert idxb.get_stubs() == expected
コード例 #5
0
 'tests.util': ModuleStub(
     function_stubs=(),
     class_stubs=[
         ClassStub(
             name='Dummy',
             function_stubs=[
                 FunctionStub(
                     name='an_instance_method',
                     signature=Signature(
                         parameters=[
                             Parameter(name='self',
                                       kind=Parameter.POSITIONAL_OR_KEYWORD,
                                       annotation=Parameter.empty),
                             Parameter(name='foo',
                                       kind=Parameter.POSITIONAL_OR_KEYWORD,
                                       annotation=make_forward_ref('FooTypedDict')),
                             Parameter(name='bar',
                                       kind=Parameter.POSITIONAL_OR_KEYWORD,
                                       annotation=int),
                         ],
                         return_annotation=make_forward_ref('DummyAnInstanceMethodTypedDict'),
                     ),
                     kind=FunctionKind.INSTANCE,
                     strip_modules=['mypy_extensions'],
                     is_async=False,
                 ),
             ],
         ),
     ],
     imports_stub=ImportBlockStub(typed_dict_import_map),
     typed_dict_class_stubs=[
         ClassStub(
             name='FooTypedDict(TypedDict)',
             function_stubs=[],
             attribute_stubs=[
                 AttributeStub('a', int),
                 AttributeStub('b', str),
             ]
         ),
         ClassStub(
             # We use the name of the method, `Dummy.an_instance_method`,
             # to get `DummyAnInstanceMethodTypedDict`.
             name='DummyAnInstanceMethodTypedDict(TypedDict)',
             function_stubs=[],
             attribute_stubs=[
                 AttributeStub('c', int),
             ]
         ),
     ],
 )