На сайте есть кнопка загрузки файла, который парсится и загружается в базу.
В коде строка:
file = request.FILES['impfile']
file_data = file.readlines()
for line1 in file_data:
line = line1.decode('cp1251')
Такой код работает через post-метод при загрузке файла.
Когда пытаюсь написать тест на импорт файла, передаю ссылку на open(file) as f, то получаю ошибку на отсутствие метода decode. Выяснил, что при методе POST файл имеет тип InMemoryUploadedFile.
Пытался преобразовать:
def test_read_one(self):
with open(self.test_file, 'r+') as file:
mem_file = InMemoryUploadedFile(file, field_name='kfile', name='201810.txt', content_type='text/plain', charset=None, size=os.path.getsize(self.test_file))
print(mem_file)
table = load_file(mem_file)
self.assertTrue(table[0] == self.one_record)
Не помогло.