Для целей тестирования и повторного использования я выделил некоторые структуры данных, созданные во время взаимодействия с пользователем в моем views.py
.
Теперь, когда я пишу тесты для этих объектов, с которыми я постоянно сталкиваюсь ModuleNotFoundError
с (No module named 'Network'
) и сделал небольшое исследование. В соответствии с Python после выбора директории модуля Я почти уверен, что нарушил любое из ограничений:
pickle может прозрачно сохранять и восстанавливать экземпляры классов, однако определение класса должно быть импортируемым и находиться в том же модуле, что и при сохранении объекта
Я не могу понять, действительно ли мои tests.py и views.py выполняются в тот же модуль. Я предполагаю, что они есть. Структура папки:
├── PickleDjango
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── functions.py
│ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── unittests.py
unittests.py
из каталога root выполняет файл tests.py, просто загружая его:
suite.addTest(loader.loadTestsFromModule(PickleDjango.tests))
внутри tests.py
, ошибка возникает в следующая строка:
orig_obj = pickle.load(infile)
Я предполагаю, что здесь может быть критическая точка, поскольку tests.py
находится в подмодуле. Но он должен работать, когда тесты запускаются из того же модуля, что и views.py
. Откуда выполняется views.py
? Папка root (например, unittests.py
) или где-то еще?