我有一些django测试代码曾经在python 2中工作但是在python3中开始抛出一些错误。这是一个片段:
def test_filter(self):
c1 = dt.Client()
c1.login(username='user1', password='pass')
f = open('data/tiny.txt', 'rb')
test_file = {
'datafile': f,
'uid': 'bb',
'private': 'True',
'name': "tr1"
}
response = c1.post(
'/api/v1/files',
test_file,
format='multipart'
)
当我使用python3运行时,我得到以下异常:
Exception ignored in: <bound method _TemporaryFileCloser.__del__ of <tempfile._TemporaryFileCloser object at 0x115904160>>
Traceback (most recent call last):
File "/Users/pete/miniconda3/envs/cenv3/lib/python3.6/tempfile.py", line 450, in __del__
self.close()
File "/Users/pete/miniconda3/envs/cenv3/lib/python3.6/tempfile.py", line 446, in close
unlink(self.name)
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/yb/3jwdnlf17gd1dcq65th786d00000gn/T/tmpw_t0j9bw.upload'
有趣的是,此异常不会影响测试的结果。他们仍然通过。它确实在输出中报告并且相当烦人。
关于导致这种情况的任何想法?使用Object.create
使用文件创建对象可以正常工作,并且不会抛出错误。