Я думаю, вы можете получить некоторую подсказку от самого test_shutil и посмотреть, как он тестирует функциональность копирования.А именно, он перемещает файлы и проверяет, существует ли он с использованием другого модуля.Различие в поведении стандартного shutil.copy для вашей оболочки заключается в том, что он имеет дело с пунктом назначения, если он еще не существует.В shutil.copy2, если место назначения еще не существует, создается файл, который перемещается из источника, в вашем случае это не файл, а каталог назначения, и вы перемещаете в него свой источник.Поэтому пишите тесты там, где пункт назначения не существует, и убедитесь, что после запуска вашей оболочки, пункт назначения по-прежнему остается каталогом и содержит файл, перемещенный shutil.