def test_should_raise_404_if_filtered_by_custom_visibility_checks(self): def filter_visibility(cls, objects, visibility_filter_args={}): return objects.filter(title='Bar') _filter_visibility = self.model.filter_visibility self.model.filter_visibility = classmethod(filter_visibility) try: # should raise 404, since not visible with self.assertRaisesRegexp( Http404, 'Unknown primary key or page is disabled'): content(self.request, self.page.pk, self.page.slug, self.model) finally: self.model.filter_visibility = _filter_visibility
def test_should_raise_404_if_page_is_disabled(self): try: self.page.disabled = True self.page.save() # should raise 404 with matching slug with self.assertRaisesRegexp( Http404, 'Unknown primary key or page is disabled'): content(self.request, self.page.pk, self.page.slug, self.model) # should raise 404 with non-matching slug with self.assertRaisesRegexp( Http404, 'Unknown primary key or page is disabled'): content(self.request, self.page.pk, 'slug-does-not_match', self.model) finally: self.page.disabled = False self.page.save()
def test_should_redirect_if_slug_does_not_match(self): response = content(self.request, self.page.pk, 'bar', self.model) self.assertEqual(301, response.status_code) self.assertEqual('/test-directory-content/foo-%d/' % self.page.pk, response.get('Location'))
def test_should_raise_404_if_pk_is_unknown(self): with self.assertRaisesRegexp( Http404, 'Unknown primary key or page is disabled'): content(self.request, 9999, self.page.slug, self.model)
def test_should_raise_404_if_attribute_condition_does_not_match(self): with self.assertRaisesRegexp( Http404, 'Unknown primary key or page is disabled'): content(self.request, self.page.pk, self.page.slug, self.model, 'title', 'Does Not Exist')
def test_should_respect_attribute_condition(self): response = content(self.request, self.page.pk, self.page.slug, self.model, 'title', 'Foo') self.assertEqual(200, response.status_code) self.assertIn('<title>Foo</title>', response.content)
def test_should_render_content_based_on_slug(self): response = content(self.request, self.page.pk, self.page.slug, self.model) self.assertEqual(200, response.status_code) self.assertIn('<title>Foo</title>', response.content)