Имитация сценария оболочки в тесте Django/DRF
Я пытался сделать тест на методе в представлениях, но этот метод вызывает скрипт-оболочку, этот скрипт написан для работы в другой ОС, так что мне нужно смоделировать это.
здесь тест:
@patch('check_web_share_file_folder.get_path_from_inode')
def test_list_with_search_mocked(self, mock_get_attribute):
mock_get_attribute.return_value = 'expected value'
request = self.factory.get('/fake-url')
force_authenticate(request, user=self.user)
view = WebShareFileFolderViewSet.as_view({'get': 'list'})
response = view(request)
self.assertEqual(response.status_code, status.HTTP_200_OK)
здесь проблема, я столкнулся с этой ошибкой при тестировании:
AttributeError: <function check_web_share_file_folder at 0x00000237FD567708> does not have the attribute 'get_path_from_inode'
check_web_share_file_folder.py имеет, конечно, get_path_from_inode()
def get_path_from_inode(inode):
std, err, code = popen_wrapper([
'sudo', 'get_path_from_inode.sh',
str(inode)
])
if code != 0:
return False
return str(std.strip())[1:]
Вы уверены, что они находятся в одной папке?
Кроме того, похоже, что python пытается получить 'get_path_from_inode' из функции, а не из модуля 'check_web_share_file_folder.py'