You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

page_tests.py 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. from django.core.urlresolvers import reverse
  2. from django.contrib.flatpages.models import FlatPage
  3. from oscar.test.testcases import WebTestCase
  4. class TestPageDashboard(WebTestCase):
  5. is_anonymous = False
  6. is_staff = True
  7. def setUp(self):
  8. self.flatpage_1 = FlatPage.objects.create(
  9. title='title1', url='/url1/',
  10. content='some content')
  11. self.flatpage_2 = FlatPage.objects.create(
  12. title='title2', url='/url2/',
  13. content='other content')
  14. super(TestPageDashboard, self).setUp()
  15. def test_dashboard_index_is_for_staff_only(self):
  16. response = self.get(reverse('dashboard:page-list'))
  17. self.assertTrue('Password' not in response.content.decode('utf8'))
  18. def test_dashboard_page_list(self):
  19. response = self.get(reverse('dashboard:page-list'))
  20. objects = response.context[-1]['object_list']
  21. self.assertTrue(self.flatpage_1 in objects)
  22. self.assertTrue(self.flatpage_2 in objects)
  23. def test_doesnt_allow_existing_pages_to_be_clobbered(self):
  24. self.assertEqual(FlatPage.objects.count(), 2)
  25. page = self.get(reverse('dashboard:page-create'))
  26. form = page.form
  27. form['title'] = 'test'
  28. form['url'] = '/dashboard/pages/'
  29. response = form.submit()
  30. self.assertEqual(200, response.status_code)
  31. self.assertEqual("Specified page already exists!",
  32. response.context['form'].errors['url'][0])
  33. self.assertEqual(FlatPage.objects.count(), 2)
  34. def test_allows_page_to_be_created(self):
  35. page = self.get(reverse('dashboard:page-create'))
  36. form = page.form
  37. form['title'] = 'test'
  38. form['url'] = '/my-new-url/'
  39. form['content'] = 'my content here'
  40. response = form.submit()
  41. self.assertIsRedirect(response)
  42. self.assertEqual(FlatPage.objects.count(), 3)
  43. def test_dashboard_create_page_with_slugified_url(self):
  44. page = self.get(reverse('dashboard:page-create'))
  45. form = page.form
  46. form['title'] = 'test'
  47. form['content'] = 'my content here'
  48. response = form.submit()
  49. self.assertIsRedirect(response)
  50. self.assertEqual(FlatPage.objects.count(), 3)
  51. def test_dashboard_create_page_with_exisiting_url_does_not_work(self):
  52. page = self.get(reverse('dashboard:page-create'))
  53. form = page.form
  54. form['title'] = 'test'
  55. form['url'] = '/url1/' # already exists
  56. form['content'] = 'my content here'
  57. response = form.submit()
  58. self.assertEqual(200, response.status_code)
  59. self.assertEqual("Specified page already exists!",
  60. response.context['form'].errors['url'][0])
  61. self.assertEqual(FlatPage.objects.count(), 2)
  62. def test_dashboard_update_page_valid_url(self):
  63. page = self.get(reverse('dashboard:page-update',
  64. kwargs={'pk': self.flatpage_1.pk}))
  65. form = page.form
  66. form['title'] = 'test'
  67. form['url'] = '/new/url/' # already exists
  68. form['content'] = 'my content here'
  69. response = form.submit()
  70. self.assertIsRedirect(response)
  71. page = FlatPage.objects.get(pk=self.flatpage_1.pk)
  72. self.assertEqual(page.title, 'test')
  73. self.assertEqual(page.url, '/new/url/')
  74. self.assertEqual(page.content, "my content here")
  75. self.assertEqual(page.sites.count(), 1)
  76. def test_dashboard_update_page_invalid_url(self):
  77. page = self.get(reverse('dashboard:page-update',
  78. kwargs={'pk': self.flatpage_1.pk}))
  79. form = page.form
  80. form['url'] = '/url2/' # already exists
  81. response = form.submit()
  82. self.assertEqual(200, response.status_code)
  83. self.assertEqual("Specified page already exists!",
  84. response.context['form'].errors['url'][0])
  85. def test_dashboard_delete_pages(self):
  86. page = self.get(reverse('dashboard:page-list'))
  87. delete_page = page.click(linkid="delete_page_%s" % self.flatpage_1.id)
  88. response = delete_page.form.submit()
  89. self.assertIsRedirect(response)
  90. self.assertEqual(FlatPage.objects.count(), 1)