我有一個上傳表單,我想測驗它。但有一個問題。
def test_if_can_upload_file(self):
with open('app_blog/tests/test.txt') as file:
self.client.post(reverse('csv_blog'), {'attachment': file})
test_file = file.read()
self.assertEqual(test_file, 'test file')
當我測驗它時,有一個錯誤:
self.assertEqual(test_file, 'test file')
AssertionError: '' != 'test file'
test file
為什么我的檔案顯示為空?實際上它不是空的。或者我以錯誤的方式測驗我的表格?
形式
class UploadBlogForm(forms.ModelForm):
file = forms.FileField()
class Meta:
model = Blog
fields = 'file',
看法
def upload_blog(request):
if request.method == "POST":
upload_file_form = UploadBlogForm(request.POST, request.FILES)
if upload_file_form.is_valid():
blog_file = upload_file_form.cleaned_data['file'].read()
blog_str = blog_file.decode('utf-8').split('\n')
csv_reader = reader(blog_str, delimiter=":::", quotechar='"')
uj5u.com熱心網友回復:
您self.client.post(…)將已經耗盡檔案處理程式并讀取檔案的全部內容,這意味著當您呼叫時file.read(),游標已經移動到檔案的末尾,因此回傳一個空字串。
您應該重新打開檔案并從頭開始讀取檔案,因此:
def test_if_can_upload_file(self):
with open('app_blog/tests/test.txt') as file:
self.client.post(reverse('csv_blog'), {'attachment': file})
with open('app_blog/tests/test.txt') as file:
test_file = file.read()
self.assertEqual(test_file, 'test file')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/438726.html
上一篇:是否可以在測驗中檢查呼叫引數?
下一篇:反應異步笑話沒有按預期失敗
