t.me/atinfo_chat Telegram группа по автоматизации тестирования

Python. Подделать размер файла или создать файл в памяти нужного размера

Теги: #<Tag:0x00007f7489fbc160> #<Tag:0x00007f7489fbc020> #<Tag:0x00007f7489fc3f00> #<Tag:0x00007f7489fc3dc0> #<Tag:0x00007f7489fc3ca8>

Проблема (Вопрос) заключается в том, что при тестировании api мне нужно проверить ответ при попытке загрузить файл большого размера, более 250Мб.
Добавление файла с репо более 250 МБ нежелательно.
Так как это тест API, а не пользовательский интерфейс, мне не нужно физический файл, чтобы поместить в элемент управления пользовательского интерфейса.

Есть ли способ подделать размер файла в тесте или создать файл в памяти и прикрепить его?

А вы снизьте планку 250мб, а не файл делайте большой.

Возможно, тут будет нужный вам ответ.

2 Симпатий

Спасибо. Помогло такое решение.

    with tempfile.NamedTemporaryFile(mode='rb+') as tf:
        tf.truncate(262144000)
    ... ... ...

Создаётся временный файл нужного размера

1 Симпатия

Надо смотреть итоговый content-length, ибо truncate создаст sparse file https://wiki.archlinux.org/index.php/Sparse_file

1 Симпатия

Ознакомившись с sparse file, стало понятно, что
в таком случаи размер файла составляет 250 МБ, а его «фактический» размер, действительно, равен нулю.
Однако такое решение меня устраивает при работе с API запросами.