def test_detail_misconfigured_queryset(self): # If don't provide 'model' or 'queryset', # we should expect an ImproperlyConfigured exception. create_instance(quantity=3) pk = Example.objects.all()[0].pk view = DetailView.as_view(template_name="example.html") self.assertRaises(ImproperlyConfigured, self.get, view, pk=pk)
def test_context_object_name_override(self): create_instance(quantity=3) pk = Example.objects.all()[0].pk view = DetailView.as_view(model=Example, context_object_name="current") response = self.get(view, pk=pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name, ["vanilla/example_detail.html"]) self.assertContext( response, { "object": Example.objects.get(pk=pk), "current": Example.objects.get(pk=pk), "view": InstanceOf(View), }, )
def test_detail_missing_context_object_name(self): # If don't provide 'model' or 'context_object_name', # then the context will only contain the 'object' key. create_instance(quantity=3) pk = Example.objects.all()[0].pk view = DetailView.as_view( queryset=Example.objects.all(), template_name="example.html", ) response = self.get(view, pk=pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name, ["example.html"]) self.assertContext( response, {"object": Example.objects.get(pk=pk), "view": InstanceOf(View)} )
def get_object(self): return DetailView.get_object(self)
def test_detail_misconfigured_urlconf(self): # If we don't provide 'pk' in the URL conf, # we should expect an ImproperlyConfigured exception. create_instance(quantity=3) view = DetailView.as_view(model=Example) self.assertRaises(ImproperlyConfigured, self.get, view, slug=999)
def test_detail_not_found(self): create_instance(quantity=3) view = DetailView.as_view(model=Example) self.assertRaises(Http404, self.get, view, pk=999)