Django SimpleUploadedFile с Python 3
У кого-нибудь есть рабочий пример SimpleUploadedFile
с Django в Python 3?
Этот код работал в Python 2, но не в Python 3.
У меня есть тест ниже:
test.py
class AttachmentModelTests(TestCase): def setUp(self): self.model = mommy.make(LocationLevel) base_dir = dirname(dirname(dirname(__file__))) self.image = join(base_dir, "source/attachments/test_in/test-mountains.jpg") def test_create(self): _file = SimpleUploadedFile(self.image, "file_content", content_type="image/jpeg") attachment = Attachment.objects.create( model_id=self.model.id, file=_file ) self.assertIsInstance(attachment, Attachment) self.assertEqual( attachment.filename, self.image.split('/')[-1] # test-mountains.jpg )
Вот ошибка, которую он выводит:
Traceback (most recent call last): File "/Users/alelevier/Documents/bsrs/bsrs-django/bigsky/generic/tests/test_models.py", line 97, in test_create content_type="image/jpeg") File "/Users/alelevier/.virtualenvs/bs/lib/python3.4/site-packages/django/core/files/uploadedfile.py", line 114, in __init__ super(SimpleUploadedFile, self).__init__(BytesIO(content), None, name, TypeError: 'str' does not support the buffer interface
- Django DateTimeField для сравнения с datetime.now ()
- Загрузка изображения Django-CKEditor
- Миграция Django убита
- извлечение «большого» конца отношения общего внешнего ключа в Django
- Virtualenv существует, но не может получить к нему доступ из сценария bash
Этот ответ помог мне решить эту проблему.
В конце концов, это обновленный рабочий тестовый код:
def test_create(self): (abs_dir_path, filename) = os.path.split(self.image) with open(self.image) as infile: _file = SimpleUploadedFile(filename, infile.read()) attachment = Attachment.objects.create( model_id=self.model.id, file=_file ) self.assertIsInstance(attachment, Attachment) self.assertEqual( attachment.filename, self.image.split('/')[-1] # test-mountains.jpg )
- Вычисление значений из последовательных строк панды
- Как я могу выполнить AND lookups с объектами Q при использовании повторяющихся аргументов вместо цепочки фильтров?
- Django: создание формы для каждого пользователя на одной странице
- Как запустить подпроцесс pdftk во время wsgi?
- Задачи сельдерея не бросают исключение в тестах Django
- Голосовые звонки в Django / Python
- Значение cookie JavaScript не может быть найдено в Django
- обработка URL-адресов с помощью хэшей, таких как jsbin
- Django dateutil ISO 8601 ошибка атрибута 'read'
- Проблема с django-pytest setup_method
- Как сохранить целое число, приводимое нулями в django