相关疑难解决方法(0)

django对象id在单元测试之间递增

我在Debian上使用Django 1.2.3-3 + squeeze1使用PostgreSQL 8.4.7-0squeeze2(尽管我认为PostgreSQL与此无关),并使用以下setUp和tearDown运行基于unittest的Django单元测试

   def setUp(self):
        print "running setup"
        self.c = Client()
        self.user = User.objects.create_user('faheem', 'faheem@email.unc.edu', 'foo')
        self.logged_in = self.c.login(username='faheem', password='foo')
        settings.MEDIA_ROOT='/tmp/'
        #settings.ZIP_UPLOAD='/var/tmp/zip/'

    def tearDown(self):
        print "running teardown"
        FolderUpload.objects.all().delete()
        FileUpload.objects.all().delete()
        ZipFileUpload.objects.all().delete()
        OldFileUpload.objects.all().delete()
        # FIXME: Quick & dirty fix for the time being. Should make this a delete method.
        os.system("rm -rf "+ settings.ZIP_UPLOAD + "/*")
Run Code Online (Sandbox Code Playgroud)

我们的想法是在运行单元测试之间从数据库中删除所有内容.根据unittest文档,这是什么tearDown.我遇到的问题是在不同的单元测试之间似乎仍然保存了一些状态.具体来说,我看到id增加了.因此,假设我创建了一个ZipFileUpload对象test1,然后创建了一个ZipFileUpload对象test2,那么我希望两个ID都可以1,但我看到的是id 1for test1和id 2for test2.如果id来自这些表之外的某个索引,那么这将是有意义的.我不太了解Diango如何知道这是否实际上是这样的.如果他们这样做,我不知道为什么.关于这一点的任何澄清将不胜感激.

无论如何,如果有人可以推荐数据库,我会满足于放弃数据库.应该采用这种方法teadDown.测试Django应用程序 …

python django unit-testing django-testing

5
推荐指数
1
解决办法
1589
查看次数

标签 统计

django ×1

django-testing ×1

python ×1

unit-testing ×1