def test_without_pagination(self): count = self.post_1.comments.filter_parents_by_object( self.post_1).count() data = render_comments(self.post_1, self.request) self.assertEqual(data['comments'].count(), count) # parent comment only self.assertEqual(data['login_url'], settings.LOGIN_URL) # check if `request` object is passed in context template self.assertEqual(data['request'], self.request)
def test_with_pagination(self): request = self.factory.get('/?page=2') request.user = self.user_1 data = render_comments(self.post_1, request) self.assertIs(data['comments'].has_previous(), True) self.assertEqual(data['comments'].paginator.per_page, 2) # 2 comment per page self.assertEqual(data['comments'].number, 2) # 3 comment fit in 2 pages self.assertEqual(data['login_url'], settings.LOGIN_URL)
def test_render_comments(self): request = self.factory.get('/') request.user = self.user_1 data = render_comments(self.post_1, request, comments_per_page=None) self.assertEqual(data['comments'].count(), 3) # parent comment only self.assertEqual(data['login_url'], '/' + settings.LOGIN_URL) # LOGIN_URL is not provided setattr(settings, 'LOGIN_URL', None) with self.assertRaises(ImproperlyConfigured) as error: render_comments(self.post_1, request) self.assertIsInstance(error.exception, ImproperlyConfigured) # check pagination setattr(settings, 'LOGIN_URL', '/login') request = self.factory.get('/?page=2') request.user = self.user_1 data = render_comments(self.post_1, request, comments_per_page=2) self.assertTrue(data['comments'].has_previous()) self.assertEqual(data['comments'].paginator.per_page, 2) # 2 comment per page self.assertEqual(data['comments'].number, 2) # 3 comment fit in 2 pages self.assertEqual(data['login_url'], settings.LOGIN_URL) # check not integer page request = self.factory.get('/?page=string') request.user = self.user_1 data = render_comments(self.post_1, request, comments_per_page=2) self.assertFalse(data['comments'].has_previous()) # check empty page request = self.factory.get('/?page=10') request.user = self.user_1 data = render_comments(self.post_1, request, comments_per_page=2) self.assertTrue(data['comments'].has_previous())
def test_render_comments(self): request = self.factory.get('/') request.user = self.user_1 comments_per_page = 'COMMENT_PER_PAGE' patch.object(settings, comments_per_page, 0).start() count = self.post_1.comments.filter_parents_by_object(self.post_1).count() data = render_comments(self.post_1, request) # no pagination self.assertEqual(data['comments'].count(), count) # parent comment only self.assertEqual(data['login_url'], settings.LOGIN_URL) # check if `request` object is passed in context template self.assertEqual(data['request'], request)
def test_render_comments(self): current_login_url = getattr(settings, 'LOGIN_URL', '/profile/login/') request = self.factory.get('/') request.user = self.user_1 comments_per_page = 'COMMENT_PER_PAGE' patch.object(settings, comments_per_page, 0).start() count = self.post_1.comments.filter_parents_by_object( self.post_1).count() data = render_comments(self.post_1, request) # no pagination self.assertEqual(data['comments'].count(), count) # parent comment only self.assertEqual(data['login_url'], settings.LOGIN_URL) # LOGIN_URL is not provided patch.object(settings, 'LOGIN_URL', None).start() with self.assertRaises(ImproperlyConfigured) as error: render_comments(self.post_1, request) self.assertIsInstance(error.exception, ImproperlyConfigured) # check pagination patch.object(settings, comments_per_page, 2).start() patch.object(settings, 'LOGIN_URL', current_login_url).start() request = self.factory.get('/?page=2') request.user = self.user_1 data = render_comments(self.post_1, request) self.assertTrue(data['comments'].has_previous()) self.assertEqual(data['comments'].paginator.per_page, 2) # 2 comment per page self.assertEqual(data['comments'].number, 2) # 3 comment fit in 2 pages self.assertEqual(data['login_url'], settings.LOGIN_URL) # check not integer page request = self.factory.get('/?page=string') request.user = self.user_1 data = render_comments(self.post_1, request) self.assertFalse(data['comments'].has_previous()) # check empty page request = self.factory.get('/?page=10') request.user = self.user_1 data = render_comments(self.post_1, request) self.assertTrue(data['comments'].has_previous())
def test_without_login_url(self): with self.assertRaises(ImproperlyConfigured) as error: render_comments(self.post_1, self.request) self.assertIsInstance(error.exception, ImproperlyConfigured)
def test_empty_page(self): request = self.factory.get('/?page=10') request.user = self.user_1 data = render_comments(self.post_1, request) self.assertIs(data['comments'].has_previous(), True)
def test_non_integral_page_number(self): request = self.factory.get('/?page=string') request.user = self.user_1 data = render_comments(self.post_1, request) self.assertIs(data['comments'].has_previous(), False)
def test_render_comments_without_login_url(self): request = self.factory.get('/') request.user = self.user_1 with self.assertRaises(ImproperlyConfigured) as error: render_comments(self.post_1, request) self.assertIsInstance(error.exception, ImproperlyConfigured)