假设我有一个包含FileField
的模型,我刚创建了一个对象,因此将文件存储到特定位置。我如何断言文件存储在那里?
对于我的情况,我MEDIA_ROOT='/path/to/my/files/'
中有settings.py
,确实文件确实存储在那里,但我想要#34;正式"经过测试和验证。
我现在拥有的是什么;
uploaded_file = settings.MEDIA_ROOT+'/test_audio.mp3'
assert os.path.exists(uploaded_file)
这里的问题是,由于Django不会像测试后的模型一样从该位置删除存储的文件,因此在第一次测试后,文件将以名称更改存储。我必须在每次测试之前手动删除文件。以下是我对现有断言声明的测试
class TestAudioFileManagement(TestCase):
def test_audio_upload(self):
"""
Tests uploading of audio
"""
User.objects.create_user(username="somename",
password="somepassword")
self.client.login(username="somename",
password="somepassword")
name = "somename"
audio_file = SimpleUploadedFile(
'test_audio.mp3',
open('/home/afzalsh/works/openradio/test_files/test_audio.mp3','rb').read(),
content_type='audio'
)
self.client.post(reverse('actual_upload_audio'),
{'name':name,
'audio_file':audio_file})
uploaded_file = settings.MEDIA_ROOT+'/test_audio.mp3'
assert os.path.exists(uploaded_file)
任何解决方案?
答案 0 :(得分:1)
您可以使用os.remove(uploaded_file)