2017-09-26 3 views
1

Je l'ai implémenté avec succès dans des boîtiers de petite taille. Puis j'ai commencé à travailler avec une structure plus grande. Et j'ai l'erreur.
Erreur:
No file was submitted.Django REST UnitTest Aucun fichier n'a été soumis

import tempfile 
from unittest import skip 

from django.conf import settings 
from django.contrib.auth.models import User 
from django.core.files import File 
from django.core.files.uploadedfile import SimpleUploadedFile 
from model_mommy import mommy 
from rest_framework import status 
from rest_framework.reverse import reverse 
from rest_framework.test import APITestCase, APIClient 


class CustomerFromExcelViewsetTest(APITestCase): 
    def setUp(self): 
     self.client = APIClient() 
     self.soken_staff = mommy.make(User, username='spearhead') 
     self.user = mommy.make(User, username='Justin') 
     settings.MEDIA_ROOT = tempfile.mkdtemp() 

    def test_upload_file(self): 
     """Expect created_user, and updated_user correct set""" 
     file = File(open('./soken_web/apps/uploaded_files/complete-customer.xlsx', 'rb')) 
     uploaded_file = SimpleUploadedFile('new_excel.xlsx', file.read(), content_type='multipart/form-data') 
     data = { 
      file: uploaded_file, 
     } 
     self.client.force_authenticate(user=self.user) 
     response = self.client.post(reverse('api:customer_from_excel-list'), data, format='multipart') 
     response.render() 

     self.assertEqual(status.HTTP_201_CREATED, response.status_code) 

Ici, ils sont les models, serializers et viewsets

models.py
https://gist.github.com/elcolie/52daf2bd144af82b348f7353656be434

serializers.py
https://gist.github.com/elcolie/7f097642c4a752e76044c6938c49e097

viewsets.py
https://gist.github.com/elcolie/34fa66632209f14624899d997919d3fb

Après un jour, je ne pouvais pas savoir où est le ce bogue.

Références:
DRF APITestCase not use `multipart` with other param

Répondre

1

semble que vous avez manqué des citations dans data dict. Il devrait être:

data = { 
    'file': uploaded_file, 
}