Tag: djangotesting

检测djangotesting模式

我正在编写一个可重用的Django应用程序,我需要确保它的模型只在应用程序处于testing模式时同步。 我试过使用自定义的DjangoTestRunner,但是我没有find如何做的例子(文档只显示了如何定义一个自定义的testing运行器)。 那么,有没有人知道如何去做? 编辑 以下是我如何做到这一点: #in settings.py import sys TEST = 'test' in sys.argv 希望能帮助到你。

在Django中testing“不同层次”的最佳实践是什么?

我不是新来的testing,但是对于在Django中testing不同层次的build议混乱感到困惑。 一些build议(他们是对的),以避免在模型中的Doctests ,因为他们是不可维护的… 其他人说不要使用灯具 ,因为它比辅助function更不灵活,例如.. 还有两个人为了使用Mock对象而战斗。 第一组相信使用模拟和隔离系统的其余部分,而另一组喜欢停止嘲笑,并开始testing .. 我上面提到的所有,主要是关于testing模型。 functiontesting是另一回事(使用test.Client()VS webTest VS等) 是否有任何可维护的,可扩展的和适当的方式来testing不同层? UPDATE 我知道Carl Meyer在PyCon 2012上的演讲

Django的self.client.login(…)在unit testing中不起作用

我用两种方法为我的unit testing创​​build了用户: 1)创build一个“auth.user”的夹具,大致看起来像这样: { "pk": 1, "model": "auth.user", "fields": { "username": "homer", "is_active": 1, "password": "sha1$72cd3$4935449e2cd7efb8b3723fb9958fe3bb100a30f2", … } } 我忽略了那些看似不重要的部分。 2)在setUp函数中使用'create_user'(虽然我宁愿把所有东西放在我的fixtures类中): def setUp(self): User.objects.create_user('homer', 'ho…@simpson.net', 'simpson') 请注意,在这两种情况下密码都是simpson。 我已经validation了这个信息正确地被一次又一次地加载到testing数据库中。 我可以使用User.objects.get获取User对象。 我可以使用'check_password'validation密码是否正确。 用户处于活动状态。 然而,总是self.client.login(username ='homer',password ='simpson')失败。 我很困惑,为什么。 我想我已经阅读了有关这个的每一个互联网讨论。 任何人都可以帮忙吗? 我的unit testing中的login代码如下所示: login = self.client.login(username='homer', password='simpson') self.assertTrue(login) 谢谢。

如何启动django可重用应用程序的testing?

我可以启动我的可重复使用的Django应用程序的testing,而无需将此应用程序合并到项目中? 我的应用程序使用一些模型,所以有必要提供(TEST_)DATABASE_*设置。 我应该在哪里存储它们?我应该如何启动testing? 对于Django项目,我可以使用manage.py test运行testing; 当我用独立的应用程序使用django-admin.py test时,我得到: 错误:无法导入设置,因为环境variablesDJANGO_SETTINGS_MODULE未定义。 这里最好的做法是什么?

我怎样才能unit testingDjango的消息?

在我的Django应用程序中,我试图编写一个unit testing来执行一个动作,然后检查响应中的消息。 据我所知,没有这样做的好方法。 我正在使用CookieStorage存储方法,我想要做类似于以下的事情: response = self.client.post('/do-something/', follow=True) self.assertEquals(response.context['messages'][0], "fail.") 问题是,我所有的回报是 print response.context['messages'] <django.contrib.messages.storage.cookie.CookieStorage object at 0x3c55250> 我怎么能把这个变成有用的东西呢,还是我做错了? 谢谢Daniel

testing邮件发送

testing电子邮件发送的任何提示? 除了可能创build一个Gmail帐户,尤其是接收这些电子邮件? 我想也许将电子邮件本地存储在发送的文件夹中。

Django Reverse找不到参数'()'和关键字参数'{}'

嗨,我有一个真气问题。 我有这样的url模式: # mproject/myapp.urls.py url(r'^project/(?P<project_id>\d+)/$','user_profile.views.EditProject',name='edit_project'), 它在浏览器中正常工作,但在testing中,当我在shell中执行此操作时: from django.test import Client from django.core.urlresolvers import reverse client= Client() response = client.get(reverse('edit_project'), project_id=4) 我得到了可怕的: NoReverseMatch: Reverse for 'edit_project' with arguments '()' and keyword arguments '{}' not found. 我在这里错过了什么?