Code:
from unittest.mock import Mock
class C:
def get_val(self):
print(1)
mock = Mock()
mock.mock_add_spec(C())
mock.get_val.side_effect = C().get_val
print(isinstance(mock, C))
True
mock.get_val()
1
In the above code, if I replace `mock.get_val.side_effect = C().get_val` with
`mock.get_val.return_value = 1` the code still works same.
from unittest.mock import Mock
class C:
def get_val(self):
print(1)
mock = Mock()
mock.mock_add_spec(C())
mock.get_val.return_value = 1
print(isinstance(mock, C))
True
mock.get_val()
1
So question is that: Are there any difference using side_effect and
return_value while configuring a return value of a method?
>From doc of
>[mock_add_spec()](https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.mock_add_spec)
> it says:
> Add a spec to a mock. spec can either be an object or a list of strings.
What kind of string it refers here? any random valid strings? Why would some
one try to mock a string objects instead of just using that string object
itself? How does this part work while attaching a spec to the Mock?
I understand the object spec part, not just the list of strings use case. So if
anyone can explain this, I will be very helpful.
Thanks,
Arup Rakshit
[email protected]
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor