Отключить в Django -Тесты: тот же модуль для представлений и тестов? - PullRequest
0 голосов
/ 13 января 2020

Для целей тестирования и повторного использования я выделил некоторые структуры данных, созданные во время взаимодействия с пользователем в моем 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) или где-то еще?

...