Пишу юнит тесты для драйвера устройства, хочу чтобы они работали даже тогда, когда самого реального устройства нет под рукой.
Решил для этого использовать mock объекты, но с ними ещё плохо знаком.
В драйвере есть различные функции, каждая из которых в итоге обращается в функции взаимодействия с устройством.
Я хочу импортировать драйвер, переопределить эти функции как мок-объекты и использовать остальные функции как обычно, так, чтобы они вызывали мок-функцию взаимодействия с драйвером.
Как это делается обычно? т.е. я представляю как сделать мок-объект всего драйвера, но это совсем не то что мне нужно. мне нужно переопределить только несколько функций из импортируемого модуля чобы остальные функции в этом модуле использовали именно подменённые функции.
По идее питон это позволяет, но мне интересна сама реализация. Пусть драйвер выглядит примерно так:
def send(info): send_to_device(info) class driver(object) def a(x, y): send(a.t + y.r) def b(x): send(x.temp)
вопрос несколько - правильный ли этот путь? как это сделать?
Спасибо.