Я не могу имитировать «частный» метод того же класса, который я пытаюсь протестировать.
В mymodule.py
:
class MyClass():
def do_something(self, x: float) -> float:
return self._get_conf() * x
def _get_conf(self) -> float:
return a_value_from_the_network
В mymodule_test.py
:
import mock
import parameterized
import mymodule
@parameterized.parameters([
(0, 0),
(1, 1.1),
])
@mock.patch('mymodule.MyClass._get_conf')
def test_do_something_math(
self, x, want, mock_get_conf):
mock_my_prop.value = prop_value
mock_get_conf.return_value = 1.1
got = mymodule.MyClass.do_something(x)
self.assertAlmostEqual(got, want)