首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用FileField测试Django模型

用FileField测试Django模型
EN

Stack Overflow用户
提问于 2009-10-07 20:02:26
回答 2查看 6.5K关注 0票数 17

我正在尝试过渡到使用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)
EN

回答 2

Stack Overflow用户

发布于 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()

希望这对某些人有帮助。

票数 19
EN

Stack Overflow用户

发布于 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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1533861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档