파일을 저장하기 전에 오디오 파일인지 확인하는 자체 작성된 FormField AudioFileFormField를 테스트하려고합니다. 이를 위해 나는 to_python 메소드를 덮어 썼다. 이 FormField를 테스트하려고하면 몇 가지 어려움이있었습니다. 이것은 지금까지 내 TestCase에있다양식 테스트를 위해 filedata를 시뮬레이션하는 올바른 방법은 무엇입니까?
: '파일'개체가 어떤 속성 내가 디버그 추적 오른쪽을 삽입 할 때
을 '얻을'을주지 않습니다
from django import forms
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase
class TestAudioFileFormField(TestCase):
""" test the formfield to use for AudioFile Uploads """
class TestForm(forms.Form):
audiofilefield = AudioFileFormField()
def setUp(self):
self.AUDIOFILE_TEST_ROOT = os.path.dirname(__file__) + '/data/'
self.files = audiofile_files
def test_to_python(self):
""" assign some files to a form and validate the form """
f = file(self.AUDIOFILE_TEST_ROOT + self.files[0])
file_data = {'audiofilefield':SimpleUploadedFile(self.files[0],f.read())}
data = {}
form = self.TestForm(data,f)
form.is_valid()
라인 form.is_valid()는 AttributeError를 제기 form.is_valid()하기 전에,이 내가 그 대화 형 세션에서 무엇을 얻을 수 있습니다 :
양식 유효성 검사가 작동되도록 정확히 내가, 대화 형 세션에서 변경 했는가ipdb> form.is_valid()
AttributeError: 'file' object has no attribute 'get'
ipdb> suf = file_data['audiofilefield']
ipdb> suf
<SimpleUploadedFile: invalid_format.mp3 (text/plain)>
ipdb> dir(suf)
[lots of info here]
ipdb> form.is_valid()
True
? AttributeUrror를 피하기 위해 SimpleUploadedFile에 파일을 전달하는 올바른 방법은 무엇입니까?
당신의'upload /'디렉토리를 오염시키지 못하셨습니까? –