标签: django-testing

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

我可以在不将此应用程序合并到项目中的情况下为我的可重用Django应用程序启动测试吗?

我的应用程序使用了一些模型,因此有必要提供(TEST_)DATABASE_*设置.我应该在哪里存储它们以及如何启动测试?

对于Django项目,我可以运行测试manage.py test; 当我使用django-admin.py test我的独立应用程序时,我得到:

错误:无法导入设置,因为未定义环境变量DJANGO_SETTINGS_MODULE.

这里的最佳做法是什么?

testing django django-testing

45
推荐指数
4
解决办法
6773
查看次数

在Django测试框架中使用基本HTTP访问身份验证

对于我的一些Django视图,我创建了一个执行基本HTTP访问身份验证的装饰器.但是,在Django中编写测试用例时,我花了一些时间来研究如何对视图进行身份验证.这就是我做到的.我希望有人觉得这很有用.

python django unit-testing http-authentication django-testing

45
推荐指数
3
解决办法
1万
查看次数

Django测试RequestFactory vs Client

我试图决定是否应该使用Django ClientRequestFactory测试我的观点.

我正在使用DjangoRESTFramework创建我的服务器,它非常简单,到目前为止:

class SimpleModelList(generics.ListCreateAPIView):
    """
    Retrieve list of all route_areas or create a new one.
    """
    queryset = SimpleModel.objects.all()
    serializer_class = SimpleModelSerializer
    filter_backends = (IsOwnerFilterBackend,)

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)
Run Code Online (Sandbox Code Playgroud)

什么是Django的测试之间的差异Client以及RequestFactory和哪种方法更适合用于测试REST服务器(如果有喜欢,除了一个较好的有什么区别)?

我应该用两者创建测试,以便为我的系统提供更好的覆盖吗?

django unit-testing django-views django-testing django-rest-framework

44
推荐指数
1
解决办法
8480
查看次数

在Django中测试"不同层"的最佳实践是什么?

不是新手测试,但是对于在Django中测试不同层的一堆建议感到非常困惑.

一些人建议(并且他们是对的)避免模型中的Doctests因为它们不可维护...

其他人说不使用灯具,因为它们比辅助功能灵活性差,例如..

还有两组人在争取使用Mock对象.第一组相信使用Mock并隔离系统的其余部分,而另一组则更喜欢停止模拟 并开始测试 ..

我上面提到的,主要是关于测试模型.功能测试是另一个故事(使用test.Client()VS webTest VS等)

是否有任何可维护,可行且适当的方法来测试不同的层?

UPDATE

我知道Carl Meyer在PyCon 2012上的演讲.

testing django tdd automated-tests django-testing

37
推荐指数
2
解决办法
3388
查看次数

为django模型编写测试用例

在我目前的项目中途,在经历了无数分钟调试的痛苦之后,我决定采用TDD.首先,我计划为每个现有模型编写一组单元测试.但对于只定义属性的模型(即没有其他方法/属性),我不确定我需要测试什么,也不确定.

class Product(models.Model):
    name = models.CharField(max_length=50)
    description = models.TextField(default='', blank=True)
    retails = models.ManyToManyField(Retail, verbose_name='Retail stores that carry the product')
    manufacturer = models.ForeignKey(Manufacturer, related_name='products')
    date_created = models.DateTimeField(auto_now_add=True)
    date_modified = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

产品为例,单元测试应涵盖哪些内容?应该如何涵盖ForeignKeyManyToManyField

python django django-models django-testing

36
推荐指数
1
解决办法
2万
查看次数

如何在Django中测试自定义模板标签?

我正在为Django应用程序添加一组模板标签,我不知道如何测试它们.我已经在我的模板中使用它们,它们似乎正在工作但我正在寻找更正式的东西.主要逻辑在模型/模型管理器中完成,并已经过测试.标签只是检索数据并将其存储在上下文变量中,例如

{% views_for_object widget as views %}
"""
Retrieves the number of views and stores them in a context variable.
"""
# or
{% most_viewed_for_model main.model_name as viewed_models %}
"""
Retrieves the ViewTrackers for the most viewed instances of the given model.
"""
Run Code Online (Sandbox Code Playgroud)

所以我的问题是你通常测试你的模板标签,如果你这样做你怎么做?

django django-templates django-testing

34
推荐指数
3
解决办法
9942
查看次数

模拟Django Queryset以测试采用查询集的函数

我的Django项目中有一个实用程序函数,它接受一个查询集,从中获取一些数据并返回结果.我想为这个函数写一些测试.有没有'mock'一个QuerySet?我想创建一个不接触数据库的对象,我可以为它提供一个值列表(即一些假行),然后它就像一个查询集,并允许某人对它进行字段查找/过滤/获取/全部等.

有这样的事情吗?

python django unit-testing django-queryset django-testing

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

用sqlite运行django测试

我使用Postgres进行生产和开发,但我想使用sqlite来运行一些测试.我没有看到一种简单的方法来配置一个引擎用于测试,另一个用于开发/生产.我错过了什么吗?

django django-testing

30
推荐指数
2
解决办法
1万
查看次数

如何在Django测试框架中修改会话

我的网站允许个人在没有登录的情况下通过基于当前session_key创建用户来贡献内容

我想为我的视图设置一个测试,但似乎无法修改request.session:

我想这样做:

from django.contrib.sessions.models import Session
s = Session()
s.expire_date = '2010-12-05'
s.session_key = 'my_session_key'
s.save()
self.client.session = s
response = self.client.get('/myview/')
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

AttributeError: can't set attribute
Run Code Online (Sandbox Code Playgroud)

关于如何在获取请求之前修改客户端会话的想法?我已经看到了这个,它似乎并没有工作

python django django-testing django-sessions

29
推荐指数
3
解决办法
1万
查看次数

测试使用South迁移的Django应用程序

我正在尝试为使用South迁移的Django应用程序创建一些功能测试.
最后,我还将创建斜纹测试.

当我尝试运行现有测试时,由于South迁移的问题,未成功创建测试数据库.(58次迁移中的第7次失败)

似乎为了测试的目的,最好从Django模型构建测试数据库,就像syncdb一样,而不是来自South.

如何设置Django测试套件以从当前模型构建测试数据库而不是尝试使用South?

django django-testing django-syncdb django-south

29
推荐指数
1
解决办法
5022
查看次数