Fix mock patch.dict stub and add mock stub (#2173)

The dict stub was referring to an instance, not the type, leading to
__call__ being considered when using as a decorator, rather than
__init__.

mock is a backport of the stdlib module and should be defined the same.
This commit is contained in:
Robert Collins
2018-06-01 16:45:54 +12:00
committed by Jelle Zijlstra
parent a3031adb46
commit 98badb6eff
3 changed files with 184 additions and 2 deletions

View File

@@ -1,7 +1,7 @@
# Stubs for unittest.mock
import sys
from typing import Any, Optional
from typing import Any, Optional, Type
if sys.version_info >= (3, 3):
FILTER_DIR = ... # type: Any
@@ -111,7 +111,7 @@ if sys.version_info >= (3, 3):
class _patcher:
TEST_PREFIX = ... # type: str
dict = ... # type: _patch_dict
dict = ... # type: Type[_patch_dict]
def __call__(self, target: Any, new: Optional[Any] = ..., spec: Optional[Any] = ..., create: bool = ..., spec_set: Optional[Any] = ..., autospec: Optional[Any] = ..., new_callable: Optional[Any] = ..., **kwargs: Any) -> Any: ...
def object(self, target: Any, attribute: str, new: Optional[Any] = ..., spec: Optional[Any] = ..., create: bool = ..., spec_set: Optional[Any] = ..., autospec: Optional[Any] = ..., new_callable: Optional[Any] = ..., **kwargs: Any) -> _patch: ...
def multiple(self, target: Any, spec: Optional[Any] = ..., create: bool = ..., spec_set: Optional[Any] = ..., autospec: Optional[Any] = ..., new_callable: Optional[Any] = ..., **kwargs: Any) -> Any: ...

View File

@@ -13,6 +13,7 @@ consistent_files = [
{'stdlib/3/ntpath.pyi', 'stdlib/3/posixpath.pyi', 'stdlib/3/macpath.pyi', 'stdlib/3/posixpath.pyi'},
{'stdlib/3.4/enum.pyi', 'third_party/3/enum.pyi'},
{'stdlib/2/os/path.pyi', 'stdlib/3/os/path.pyi'},
{'stdlib/3/unittest/mock.pyi', 'third_party/2and3/mock.pyi'},
]
def main():

181
third_party/2and3/mock.pyi vendored Normal file
View File

@@ -0,0 +1,181 @@
# Stubs for unittest.mock
import sys
from typing import Any, Optional, Type
if sys.version_info >= (3, 3):
FILTER_DIR = ... # type: Any
class _slotted: ...
class _SentinelObject:
name = ... # type: Any
def __init__(self, name: Any) -> None: ...
class _Sentinel:
def __init__(self) -> None: ...
def __getattr__(self, name: str) -> Any: ...
sentinel = ... # type: Any
DEFAULT = ... # type: Any
class _CallList(list):
def __contains__(self, value: Any) -> bool: ...
class _MockIter:
obj = ... # type: Any
def __init__(self, obj: Any) -> None: ...
def __iter__(self) -> Any: ...
def __next__(self) -> Any: ...
class Base:
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
# TODO: Get rid of the # type: ignore below.
# It is currently required to shut up mypy when run with `--strict`
# or `--disallow-subclassing-any`. The `Any` base class is currently
# the only way to allow passing an instance of `Mock` to functions
# expecting other classes (as is Mock's purpose)
class NonCallableMock(Any): # type: ignore
def __new__(cls, *args: Any, **kw: Any) -> Any: ...
def __init__(self, spec: Optional[Any] = ..., wraps: Optional[Any] = ..., name: Optional[Any] = ..., spec_set: Optional[Any] = ..., parent: Optional[Any] = ..., _spec_state: Optional[Any] = ..., _new_name: Any = ..., _new_parent: Optional[Any] = ..., _spec_as_instance: Any = ..., _eat_self: Optional[Any] = ..., unsafe: Any = ..., **kwargs: Any) -> None: ...
def attach_mock(self, mock: Any, attribute: Any) -> Any: ...
def mock_add_spec(self, spec: Any, spec_set: Any = ...) -> Any: ...
return_value = ... # type: Any
__class__ = ... # type: type
called = ... # type: Any
call_count = ... # type: Any
call_args = ... # type: Any
call_args_list = ... # type: Any
mock_calls = ... # type: Any
side_effect = ... # type: Any
method_calls = ... # type: Any
def reset_mock(self, visited: Optional[bool] = ...) -> None: ...
def configure_mock(self, **kwargs: Any) -> None: ...
def __getattr__(self, name: Any) -> Any: ...
def __dir__(self) -> Any: ...
def __setattr__(self, name: Any, value: Any) -> None: ...
def __delattr__(self, name: Any) -> None: ...
def assert_not_called(_mock_self) -> None: ...
def assert_called_with(_mock_self, *args: Any, **kwargs: Any) -> None: ...
def assert_called_once_with(_mock_self, *args: Any, **kwargs: Any) -> None: ...
def assert_has_calls(self, calls: Any, any_order: bool = ...) -> None: ...
def assert_any_call(self, *args: Any, **kwargs: Any) -> None: ...
class CallableMixin(Base):
side_effect = ... # type: Any
def __init__(self, spec: Optional[Any] = ..., side_effect: Optional[Any] = ..., return_value: Any = ..., wraps: Optional[Any] = ..., name: Optional[Any] = ..., spec_set: Optional[Any] = ..., parent: Optional[Any] = ..., _spec_state: Optional[Any] = ..., _new_name: Any = ..., _new_parent: Optional[Any] = ..., **kwargs: Any) -> None: ...
def __call__(_mock_self, *args: Any, **kwargs: Any) -> Any: ...
class Mock(CallableMixin, NonCallableMock):
def __init__(self, spec: Any = ..., spec_set: Any = ..., side_effect: Any = ..., return_value: Any = ..., wraps: Any = ..., name: Any = ..., **kwargs: Any) -> None: ...
class _patch:
attribute_name = ... # type: Any
getter = ... # type: Any
attribute = ... # type: Any
new = ... # type: Any
new_callable = ... # type: Any
spec = ... # type: Any
create = ... # type: bool
has_local = ... # type: Any
spec_set = ... # type: Any
autospec = ... # type: Any
kwargs = ... # type: Any
additional_patchers = ... # type: Any
def __init__(self, getter: Any, attribute: Any, new: Any, spec: Any, create: Any, spec_set: Any, autospec: Any, new_callable: Any, kwargs: Any) -> None: ...
def copy(self) -> Any: ...
def __call__(self, func: Any) -> Any: ...
def decorate_class(self, klass: Any) -> Any: ...
def decorate_callable(self, func: Any) -> Any: ...
def get_original(self) -> Any: ...
target = ... # type: Any
temp_original = ... # type: Any
is_local = ... # type: Any
def __enter__(self) -> Any: ...
def __exit__(self, *exc_info: Any) -> Any: ...
def start(self) -> Any: ...
def stop(self) -> Any: ...
class _patch_dict:
in_dict = ... # type: Any
values = ... # type: Any
clear = ... # type: Any
def __init__(self, in_dict: Any, values: Any = ..., clear: Any = ..., **kwargs: Any) -> None: ...
def __call__(self, f: Any) -> Any: ...
def decorate_class(self, klass: Any) -> Any: ...
def __enter__(self) -> Any: ...
def __exit__(self, *args: Any) -> Any: ...
start = ... # type: Any
stop = ... # type: Any
class _patcher:
TEST_PREFIX = ... # type: str
dict = ... # type: Type[_patch_dict]
def __call__(self, target: Any, new: Optional[Any] = ..., spec: Optional[Any] = ..., create: bool = ..., spec_set: Optional[Any] = ..., autospec: Optional[Any] = ..., new_callable: Optional[Any] = ..., **kwargs: Any) -> Any: ...
def object(self, target: Any, attribute: str, new: Optional[Any] = ..., spec: Optional[Any] = ..., create: bool = ..., spec_set: Optional[Any] = ..., autospec: Optional[Any] = ..., new_callable: Optional[Any] = ..., **kwargs: Any) -> _patch: ...
def multiple(self, target: Any, spec: Optional[Any] = ..., create: bool = ..., spec_set: Optional[Any] = ..., autospec: Optional[Any] = ..., new_callable: Optional[Any] = ..., **kwargs: Any) -> Any: ...
def stopall(self) -> None: ...
patch = ... # type: _patcher
class MagicMixin:
def __init__(self, *args: Any, **kw: Any) -> None: ...
class NonCallableMagicMock(MagicMixin, NonCallableMock):
def __init__(self) -> None: ...
def mock_add_spec(self, spec: Any, spec_set: Any = ...) -> Any: ...
class MagicMock(MagicMixin, Mock):
def __init__(self, spec: Any = ..., spec_set: Any = ..., side_effect: Any = ..., return_value: Any = ..., wraps: Any = ..., name: Any = ..., **kwargs: Any) -> None: ...
def mock_add_spec(self, spec: Any, spec_set: Any = ...) -> Any: ...
class MagicProxy:
name = ... # type: Any
parent = ... # type: Any
def __init__(self, name: Any, parent: Any) -> None: ...
def __call__(self, *args: Any, **kwargs: Any) -> Any: ...
def create_mock(self) -> Any: ...
def __get__(self, obj: Any, _type: Optional[Any] = ...) -> Any: ...
class _ANY:
def __eq__(self, other: Any) -> bool: ...
def __ne__(self, other: Any) -> bool: ...
ANY = ... # type: Any
class _Call(tuple):
def __new__(cls, value: Any = ..., name: Optional[Any] = ..., parent: Optional[Any] = ..., two: bool = ..., from_kall: bool = ...) -> Any: ...
name = ... # type: Any
parent = ... # type: Any
from_kall = ... # type: Any
def __init__(self, value: Any = ..., name: Optional[Any] = ..., parent: Optional[Any] = ..., two: bool = ..., from_kall: bool = ...) -> None: ...
def __eq__(self, other: Any) -> bool: ...
__ne__ = ... # type: Any
def __call__(self, *args: Any, **kwargs: Any) -> Any: ...
def __getattr__(self, attr: Any) -> Any: ...
def count(self, *args: Any, **kwargs: Any) -> Any: ...
def index(self, *args: Any, **kwargs: Any) -> Any: ...
def call_list(self) -> Any: ...
call = ... # type: Any
def create_autospec(spec: Any, spec_set: Any = ..., instance: Any = ..., _parent: Optional[Any] = ..., _name: Optional[Any] = ..., **kwargs: Any) -> Any: ...
class _SpecState:
spec = ... # type: Any
ids = ... # type: Any
spec_set = ... # type: Any
parent = ... # type: Any
instance = ... # type: Any
name = ... # type: Any
def __init__(self, spec: Any, spec_set: Any = ..., parent: Optional[Any] = ..., name: Optional[Any] = ..., ids: Optional[Any] = ..., instance: Any = ...) -> None: ...
def mock_open(mock: Optional[Any] = ..., read_data: Any = ...) -> Any: ...
class PropertyMock(Mock):
def __get__(self, obj: Any, obj_type: Any) -> Any: ...
def __set__(self, obj: Any, val: Any) -> Any: ...
if sys.version_info >= (3, 7):
def seal(mock: Any) -> None: ...