def test_cannot_publish_invalid_blog_post(self): """Checks that an invalid blog post is not published.""" with self.assertRaisesRegex( Exception, ('Title should not be empty')): blog_services.publish_blog_post(self.blog_post_a_id) blog_services.update_blog_post( self.blog_post_a_id, self.change_dict_one) with self.assertRaisesRegex( Exception, ('Atleast one tag should be selected')): blog_services.publish_blog_post(self.blog_post_a_id) change_dict_three = { 'title': 'Sample', 'thumbnail_filename': 'thummbnail.svg', 'content': '', 'tags': ['one', 'two'] } blog_services.update_blog_post(self.blog_post_a_id, change_dict_three) with self.assertRaisesRegex( Exception, ('Content can not be empty')): blog_services.publish_blog_post(self.blog_post_a_id) blog_services.delete_blog_post(self.blog_post_a_id) with self.assertRaisesRegex( Exception, ('The given blog post does not exist')): blog_services.publish_blog_post(self.blog_post_a_id)
def test_delete_blog_post(self): blog_services.delete_blog_post(self.blog_post_a_id) self.assertIsNone(blog_services.get_blog_post_rights( self.blog_post_a_id, strict=False)) self.assertIsNone(blog_services.get_blog_post_by_id( self.blog_post_a_id, strict=False)) self.assertIsNone(blog_services.get_blog_post_summary_by_id( self.blog_post_a_id, strict=False))
def test_get_blog_post_data_by_invalid_blog_post_id(self): self.login(self.BLOG_EDITOR_EMAIL) self.get_json('%s/%s' % (feconf.BLOG_EDITOR_DATA_URL_PREFIX, '123'), expected_status_int=500) blog_services.delete_blog_post(self.blog_post.id) self.get_json('%s/%s' % (feconf.BLOG_EDITOR_DATA_URL_PREFIX, self.blog_post.id), expected_status_int=404) self.logout()
def test_raise_exception_if_blog_post_does_not_exists(self): self.login(self.user_email) blog_post = blog_services.get_blog_post_by_id(self.blog_post.id) self.get_json( '%s/%s' % (feconf.BLOG_HOMEPAGE_URL, blog_post.url_fragment), ) blog_services.delete_blog_post(blog_post.id) self.get_json( '%s/%s' % (feconf.BLOG_HOMEPAGE_URL, blog_post.url_fragment), expected_status_int=404 )
def test_put_blog_post_data_by_invalid_blog_post_id(self): self.login(self.BLOG_EDITOR_EMAIL) csrf_token = self.get_new_csrf_token() payload = { 'change_dict': { 'title': 'Sample Title', }, 'new_publish_status': False } self.put_json( '%s/%s' % (feconf.BLOG_EDITOR_DATA_URL_PREFIX, 123), payload, csrf_token=csrf_token, expected_status_int=404) blog_services.delete_blog_post(self.blog_post.id) csrf_token = self.get_new_csrf_token() # This is raised by acl decorator. self.put_json( '%s/%s' % (feconf.BLOG_EDITOR_DATA_URL_PREFIX, self.blog_post.id), payload, csrf_token=csrf_token, expected_status_int=404)
def test_cannot_unpublish_invalid_blog_post(self): blog_services.delete_blog_post(self.blog_post_a_id) with self.assertRaisesRegex( Exception, ('The given blog post does not exist')): blog_services.unpublish_blog_post(self.blog_post_a_id)
def delete(self, blog_post_id: str) -> None: """Handles Delete requests.""" blog_domain.BlogPost.require_valid_blog_post_id(blog_post_id) blog_services.delete_blog_post(blog_post_id) self.render_json(self.values)
def test_cannot_unpublish_invalid_blog_post(self) -> None: blog_services.delete_blog_post(self.blog_post_a_id) with self.assertRaisesRegex( # type: ignore[no-untyped-call] Exception, ('The given blog post does not exist')): blog_services.unpublish_blog_post(self.blog_post_a_id)