Не могу утверждать путь создания папок с помощью патча UnittestPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Не могу утверждать путь создания папок с помощью патча Unittest

Сообщение Anonymous »

Я пытаюсь утверждать все пути, которые прошли через OS.Madkedirs , чтобы проверить, что была создана структурированная папка. Код не сложен, и я уверен, что он работает, но мои тесты сообщают о том, что метод не был вызван по путям, которые я прохожу, проверяя вызовы в assert_any_call (my_path, 511) . Теперь, что странно в этом случае, так это то, что запуск assert_called_once в качестве взлома, чтобы увидеть, что вывод показывает, что метод был фактически вызван с ожидаемыми путями. Что происходит в этом случае? Я не хотел бы оставлять эту часть моего кода непроверенным, так как другой разработчик мог бы поработать на нем, возможно, попасть в ловушку двойной проверки его и тратить его/ее время.
< em> code
def generate_base_folders():
if not os.path.exists(Path.cwd() / "unity_project"):
raise FolderCreationException("unity_project folder doesn't exist in the project")

for category in ["characters", "environments", "ui", "cinematics"]:
for tag in ["concept", "model", "animation", "vfx", "sfx", "vo", "music"]:
os.makedirs(Path.cwd() / "sessions" / category / "common" / tag)
os.makedirs(Path.cwd() / "unity_project" / "Assets" / category / "common" / tag)

test
@patch("os.makedirs")
def test_base_folders(self, mkdirs_mock):
assertions = []
for category in ["characters", "environments", "ui", "cinematics"]:
for tag in ["concept", "model", "animation", "vfx", "sfx", "vo", "music"]:
assertions.append(Path.cwd() / "sessions" / category / "common" / tag)
assertions.append(
Path.cwd() / "unity_project" / "Assets" / category / "common" / tag
)
sessions.generate_base_folders()
for a in assertions:
mkdirs_mock.assert_any_call(a, 511)

assert_any_call traceback
Fss.
======================================================================
FAIL: test_base_folders (sessions.tests.sessions_tests.TestSessionsSetup.test_base_folders)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\juank\AppData\Local\Programs\Python\Python313\Lib\unittest\mock.py", line 1424, in patched
return func(*newargs, **newkeywargs)
File "C:\Users\juank\dev\projects\python\gamedev_eco\sessions\tests\sessions_tests.py", line 40, in test_base_folders
mkdirs_mock.assert_any_call(a, 511)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "C:\Users\juank\AppData\Local\Programs\Python\Python313\Lib\unittest\mock.py", line 1048, in assert_any_call
raise AssertionError(
'%s call not found' % expected_string
) from cause
AssertionError: makedirs(WindowsPath('C:/Users/juank/gamedev_eco/sessions/characters/common/concept'), 511) call not found

----------------------------------------------------------------------
Ran 4 tests in 0.018s

FAILED (failures=1, skipped=2)

assert_called_once traceback
Fss.
======================================================================
FAIL: test_base_folders (sessions.tests.sessions_tests.TestSessionsSetup.test_base_folders)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\juank\AppData\Local\Programs\Python\Python313\Lib\unittest\mock.py", line 1424, in patched
return func(*newargs, **newkeywargs)
File "C:\Users\juank\dev\projects\python\gamedev_eco\sessions\tests\sessions_tests.py", line 40, in test_base_folders
mkdirs_mock.assert_called_once()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\juank\AppData\Local\Programs\Python\Python313\Lib\unittest\mock.py", line 956, in assert_called_once
raise AssertionError(msg)
AssertionError: Expected 'makedirs' to have been called once. Called 56 times.
Calls: [call(WindowsPath('C:/Users/juank/gamedev_eco/sessions/characters/common/concept')),
(truncated the list for brevity)


Подробнее здесь: https://stackoverflow.com/questions/793 ... test-patch
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»