Mini Shell
from testfixtures.mock import Mock, call, ANY
from .test_compare import CompareHelper
class TestCall(CompareHelper):
def test_non_root_call_not_equal(self):
self.check_raises(
call.foo().bar(),
call.baz().bar(),
'\n'
"'call.foo().bar()'\n"
'!=\n'
"'call.baz().bar()'"
)
def test_non_root_attr_not_equal(self):
self.check_raises(
call.foo.bar(),
call.baz.bar(),
'\n'
"'call.foo.bar()'\n"
'!=\n'
"'call.baz.bar()'"
)
def test_non_root_params_not_equal(self):
self.check_raises(
call.foo(x=1).bar(),
call.foo(x=2).bar(),
'\n'
"'call.foo(x=1)'\n"
'!=\n'
"'call.foo(x=2)'"
)
def test_any(self):
assert call == ANY
def test_no_len(self):
assert not call == object()
def test_two_elements(self):
m = Mock()
m(x=1)
assert m.call_args == ((), {'x': 1})
def test_other_empty(self):
assert call == ()
def test_other_single(self):
assert call == ((),)
assert call == ({},)
assert call == ('',)
def test_other_double(self):
assert call == ('', (),)
assert call == ('', {},)
def test_other_quad(self):
assert not call == (1, 2, 3, 4)
class TestMock(CompareHelper):
def test_non_root_call_not_equal(self):
m = Mock()
m.foo().bar()
self.check_raises(
m.mock_calls[-1],
call.baz().bar(),
'\n'
"'call.foo().bar()'\n"
'!=\n'
"'call.baz().bar()'"
)
def test_non_root_attr_not_equal(self):
m = Mock()
m.foo.bar()
self.check_raises(
m.mock_calls[-1],
call.baz.bar(),
'\n'
"'call.foo.bar()'\n"
'!=\n'
"'call.baz.bar()'"
)
def test_non_root_params_not_equal(self):
m = Mock()
m.foo(x=1).bar()
# surprising and annoying (and practically unsolvable :-/):
assert m.mock_calls[-1] == call.foo(y=2).bar()
Zerion Mini Shell 1.0