PageRenderTime 33ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/regressiontests/generic_views/detail.py

https://code.google.com/p/mango-py/
Python | 78 lines | 64 code | 14 blank | 0 comment | 0 complexity | 185ca129d43a6006d42d2ea47e50cd83 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. from django.core.exceptions import ImproperlyConfigured
  2. from django.test import TestCase
  3. from regressiontests.generic_views.models import Artist, Author, Page
  4. class DetailViewTest(TestCase):
  5. fixtures = ['generic-views-test-data.json']
  6. urls = 'regressiontests.generic_views.urls'
  7. def test_simple_object(self):
  8. res = self.client.get('/detail/obj/')
  9. self.assertEqual(res.status_code, 200)
  10. self.assertEqual(res.context['object'], {'foo': 'bar'})
  11. self.assertTemplateUsed(res, 'generic_views/detail.html')
  12. def test_detail_by_pk(self):
  13. res = self.client.get('/detail/author/1/')
  14. self.assertEqual(res.status_code, 200)
  15. self.assertEqual(res.context['object'], Author.objects.get(pk=1))
  16. self.assertEqual(res.context['author'], Author.objects.get(pk=1))
  17. self.assertTemplateUsed(res, 'generic_views/author_detail.html')
  18. def test_detail_by_slug(self):
  19. res = self.client.get('/detail/author/byslug/scott-rosenberg/')
  20. self.assertEqual(res.status_code, 200)
  21. self.assertEqual(res.context['object'], Author.objects.get(slug='scott-rosenberg'))
  22. self.assertEqual(res.context['author'], Author.objects.get(slug='scott-rosenberg'))
  23. self.assertTemplateUsed(res, 'generic_views/author_detail.html')
  24. def test_verbose_name(self):
  25. res = self.client.get('/detail/artist/1/')
  26. self.assertEqual(res.status_code, 200)
  27. self.assertEqual(res.context['object'], Artist.objects.get(pk=1))
  28. self.assertEqual(res.context['artist'], Artist.objects.get(pk=1))
  29. self.assertTemplateUsed(res, 'generic_views/artist_detail.html')
  30. def test_template_name(self):
  31. res = self.client.get('/detail/author/1/template_name/')
  32. self.assertEqual(res.status_code, 200)
  33. self.assertEqual(res.context['object'], Author.objects.get(pk=1))
  34. self.assertEqual(res.context['author'], Author.objects.get(pk=1))
  35. self.assertTemplateUsed(res, 'generic_views/about.html')
  36. def test_template_name_suffix(self):
  37. res = self.client.get('/detail/author/1/template_name_suffix/')
  38. self.assertEqual(res.status_code, 200)
  39. self.assertEqual(res.context['object'], Author.objects.get(pk=1))
  40. self.assertEqual(res.context['author'], Author.objects.get(pk=1))
  41. self.assertTemplateUsed(res, 'generic_views/author_view.html')
  42. def test_template_name_field(self):
  43. res = self.client.get('/detail/page/1/field/')
  44. self.assertEqual(res.status_code, 200)
  45. self.assertEqual(res.context['object'], Page.objects.get(pk=1))
  46. self.assertEqual(res.context['page'], Page.objects.get(pk=1))
  47. self.assertTemplateUsed(res, 'generic_views/page_template.html')
  48. def test_context_object_name(self):
  49. res = self.client.get('/detail/author/1/context_object_name/')
  50. self.assertEqual(res.status_code, 200)
  51. self.assertEqual(res.context['object'], Author.objects.get(pk=1))
  52. self.assertEqual(res.context['thingy'], Author.objects.get(pk=1))
  53. self.assertFalse('author' in res.context)
  54. self.assertTemplateUsed(res, 'generic_views/author_detail.html')
  55. def test_duplicated_context_object_name(self):
  56. res = self.client.get('/detail/author/1/dupe_context_object_name/')
  57. self.assertEqual(res.status_code, 200)
  58. self.assertEqual(res.context['object'], Author.objects.get(pk=1))
  59. self.assertFalse('author' in res.context)
  60. self.assertTemplateUsed(res, 'generic_views/author_detail.html')
  61. def test_invalid_url(self):
  62. self.assertRaises(AttributeError, self.client.get, '/detail/author/invalid/url/')
  63. def test_invalid_queryset(self):
  64. self.assertRaises(ImproperlyConfigured, self.client.get, '/detail/author/invalid/qs/')