Я работаю над программным обеспечением для робота, который обычно запускается на малине Pi. Рассмотрим импорт двух файлов:python mock и библиотеки, которые не установлены
motor.py
(запускает двигатели):
from RPi import GPIO as gpio
и client.py
(обменивается данными с сервером и реле команды на двигатели):
from rpi.motor import Motor
Оба файла находятся в каталоге rpi
, который содержит __init__.py
и __main__.py
. Пакет RPi
не может быть установлен на устройствах, отличных от RPi. Тем не менее, я все еще хочу проверить функциональность client.py
.
import unittest
from unittest import mock
# Location A
class TestClient(unittest.TestCase):
# Location B
setUp(self):
# Location C
pass
Изначально я пытался from rpi.client import Client
на Loca, но это не удалось, потому что он пытался импортировать двигатель, а затем импортировать GPIO из RPI, который не существует. Я также попытался mock.patch("rpi.client.Motor")
в LocB (включая добавление mock_motor
после self
и импортирован Client
на LOCC, но это не удалось, как хорошо. Я попытался насмешливо RPi
на Лока, тоже, но это не сработало.
Как ты глумился ?. из библиотеки, который не установлен в вашей системе
Если библиотека работает только на Pi, то почему бы не запустить тесты на Pi? Тогда вам не нужно ничего осложнять. – davidism
Потому что у меня нет доступа к Pi в любое время. Я развиваюсь на своем компьютере, а затем нажимаю на github и тяну к Pi. Но я скорее испытаю, чем совершу. –