Найти - Пользователи
Полная версия: mock для отдельных функций драйвера
Начало » Python для экспертов » mock для отдельных функций драйвера
1
xwizard
Всем привет.
Пишу юнит тесты для драйвера устройства, хочу чтобы они работали даже тогда, когда самого реального устройства нет под рукой.
Решил для этого использовать 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)
хочу импортировать этот класс и переопределить функцию send как mock объект.
вопрос несколько - правильный ли этот путь? как это сделать?

Спасибо.
Андрей Светлов

http://www.voidspace.org.uk/python/mock/patch.html

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB