Есть функция, которая проверяет некий файл, а именно: существует ли файл, возможно ли запись в него. Реальный файл при этом использовать как я понимаю нельзя в моих условиях. Т.е. мне я так понимаю нужно как-то сымитировал объект некого файл, так чтобы я мог применить к нему os.access(’сымитированный объект’, mode) и проверить на os.F_OK, os.W_OK т.е. он должен быть файлом. Существовать, не существовать, быть доступным на запись, быть недоступным на запись…
Тестируемая функция проверяет некий файл в реальном каталоге (т.е. это захардкоженный путь), надо чтобы объект как бы был этим самым файлом в этом каталоге… Как-то так.
Опыта работы с mock не имею поэтому даже не знаю как вообще подобное можно реализовать…
Последние комментарии
-  
        
            OlegL, 17 декабря 2023 года в 15:00            →
        
        
            Перекличка
            21
        
  -  
        
            REDkiy, 8 июня 2023 года в 9:09            →
        
        
            Как «замокать» файл для юниттеста в Python?
            2
        
  -  
        
            fhunter, 29 ноября 2022 года в 2:09            →
        
        
            Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
            6
        
  -  
        
            Иванн, 9 апреля 2022 года в 8:31            →
        
        
            Ассоциация РАСПО провела первое учредительное собрание
            1
        
  -  
        
            Kiri11.ADV1, 7 марта 2021 года в 12:01            →
        
        
            Логи catalina.out в TomCat 9 в формате JSON
            1
        
  
DevOps as a Service from Palark
	
Я не знаю ничего про mock, и может сейчас скажу бесполезную вещь совершенно, но я бы начал с того, чтобы убрал бы эту жёсткую захардкоженность, и брал бы путь из переменной, значение которой на время теста подменял бы, чтобы функция пыталась бы открыть какой-нибудь файл в специально подготовленной директории.
По-хорошему, я бы завёл переменную INSTALL_ROOT, или типа того, чтобы все «абсолютные» пути считались бы относительно него.
Восстань!
Я особо не пользуюсь unittest. Если бы это был pytest я бы сделал как-то так:
1. Создал фикстуры которые создают файлы по нужному пути и назначает ему требуемые права.
2. Сделал тесты, которые используют соответствующие фикстуры и делают нужные проверки.
3. Всё.