我正在尝试过渡到使用Django进行测试。这是用于测试的特定模型:
class Media(models.Model):
file = models.FileField(upload_to='upload',)
thumbnail = models.ImageField(upload_to='upload', blank=True,)
# ...
第1部分:如何处理这些FileFields?(特别是在我需要生成假条目来测试代码的意义上)
第2部分:下面是我已经开始编写的测试代码。我这样做是正确的,还是应该使用一种“嘲笑”的形式?
from django.test import TestCase
from django.test.client import Client
from django.contrib.auth.models import User
from mediamanager.models import Media
class MediaManagerTestCase(TestCase):
def setUp(self):
self.fake_user = User.objects.create(username='fakeuser', is_staff=false)
self.fake_staff = User.objects.create(username='fakestaff', is_staff=true)
self.fake_admin = User.objects.create(username='fakeadmin', is_superuser=true)
self.fake_media_image = Media.objects.create() # Hmmm...
self.fake_media_video = Media.objects.create() # How do i do this...
def testMediaCanEdit(self):
perm = self.fake_media_image.can_edit(self.fake_user)
self.assertEquals(perm, false)
发布于 2009-12-03 17:34:08
嗨,我刚刚遇到了同样的问题,在谷歌搜索后,我最终得到了:
from django.test import TestCase
from django.core.files import File as DjangoFile
from home.models import Tab, File
class FileModelTest(TestCase):
def setUp(self):
self.tab = Tab.objects.create(
title="Title",
html="<p>test</p>",
published=True
)
self.file = File.objects.create(
tab=self.tab,
file=DjangoFile(open("home/tests/models.py"), "test_file.css")
)
def tearDown(self):
self.file.delete()
self.tab.delete()
希望这对某些人有帮助。
发布于 2011-06-07 23:30:39
您应该在创建fixtures之后初始化文件:
def setUp(self):
files = UpFile.objects.all()
for file in files:
filepath = os.path.join(settings.MEDIA_ROOT, file.upfile.name)
open(filepath, 'w').close()
https://stackoverflow.com/questions/1533861
复制相似问题