unit testing - Python mock return of a getattr() call -
edit: might falling xy problem trap here. here's want know.
i have following function:
def foo(): bar = functogetbar() return bar.getattr("some_attr", none)
in test, try do:
mocked_bar = magicmock() expected_return_val = [obj1, obj2, ...] functogetbar.return_value = mocked_bar # functogetbar patched def testgetbar(self): assertequal(expected_return_val, foo())
now want provide expected_return_val
onto some_attr
attribute on bar
object.
i have tried using propertymock:
type(mocked_bar).getattr = propertymock(return_value=expected_return_value)
running test error:
typeerror: 'list' object not callable
if return_value
set scalar (not list), result of getattr
call in real function mock, , not scalar provided.
also, i'm worried mocking out getattr
method, since common method used elsewhere in function. how can set list on attribute of mock object under test?
Comments
Post a Comment