Django - 编写测试:单元测试传递给通用视图的额外变量

时间:2015-06-08 09:21:17

标签: django-class-based-views django-testing

我想知道是否有办法使用Django的测试客户端来验证从通用视图传递的额外变量是否正确。

例如,根据下面的代码,如何为list_year()编写测试以确保模板从视图中接收当前年份,或者purchase_yrs()确保正确的信息是从模型经理那里传来的?

我似乎找不到从response.context属性中提取它的方法。

class PurchaseIndex(generic.ListView):

    def get_queryset(self):
        current_date = datetime.now().year
        return Purchase.objects.filter(purchase_date__year=current_date).reverse()

    def purchase_yrs(self):
        return Purchase.purchase_years.purchase_years_list()

    def list_year(self):
        return datetime.now().year

1 个答案:

答案 0 :(得分:0)

好的,我终于想出了这个。很简单:

from django.test import TestCase
from views import PurchaseIndex

class IndexPageTest(TestCase):

    def test_current_purchase_index_displays_year(self):
        context = PurchaseIndex.list_year(self)
        self.assertEqual(2015, context)

    def test_current_shipments_included_in_current_purchase_index(self):
        context = PurchaseIndex.purchase_yrs(self)
        self.assertIn(2015, context)
        self.assertIn(2014, context)