def setUp(self): super(BlogServicesUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.signup('*****@*****.**', 'B') self.user_id_a = self.get_user_id_from_email('*****@*****.**') self.user_id_b = self.get_user_id_from_email('*****@*****.**') self.blog_post_a = blog_services.create_new_blog_post(self.user_id_a) self.blog_post_b = blog_services.create_new_blog_post(self.user_id_b) self.blog_post_a_id = self.blog_post_a.id self.blog_post_b_id = self.blog_post_b.id self.change_dict = { 'tags': ['one', 'two'] } self.change_dict_one = { 'title': 'Sample Title', 'thumbnail_filename': 'thummbnail.svg', 'content': '<p>Hello</p>' } self.change_dict_two = { 'title': 'Sample title two', 'thumbnail_filename': 'thummbnail.svg', 'content': '<p>Hello</p>', 'tags': ['one', 'two'] }
def setUp(self) -> None: super(BlogServicesUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.signup('*****@*****.**', 'B') self.user_id_a = self.get_user_id_from_email('*****@*****.**') # type: ignore[no-untyped-call] self.user_id_b = self.get_user_id_from_email('*****@*****.**') # type: ignore[no-untyped-call] self.blog_post_a = blog_services.create_new_blog_post(self.user_id_a) self.blog_post_b = blog_services.create_new_blog_post(self.user_id_b) self.blog_post_a_id = self.blog_post_a.id self.blog_post_b_id = self.blog_post_b.id # Dictionary of type BlogPostChangeDict should contain 'title' key but # for testing purpose here we are not providing the 'title' key, which # causes MyPy to throw error. Thus to silent the error, we used ignore # here. self.change_dict: blog_services.BlogPostChangeDict = { # type: ignore[typeddict-item] 'thumbnail_filename': 'test.svg', 'content': '<p>hi<p>', 'tags': ['one', 'two'] } self.change_dict_one: blog_services.BlogPostChangeDict = { 'title': 'Sample Title', 'thumbnail_filename': 'thummbnail.svg', 'content': '<p>Hello</p>', 'tags': [] } self.change_dict_two: blog_services.BlogPostChangeDict = { 'title': 'Sample title two', 'thumbnail_filename': 'thummbnail.svg', 'content': '<p>Hello</p>', 'tags': ['one', 'two'] }
def test_get_blog_post_rights_by_user_id(self): blog_post_rights_models = ( blog_services.get_blog_post_rights_by_user_id(self.user_id_a)) self.assertTrue(len(blog_post_rights_models) == 1) self.assertEqual(blog_post_rights_models[0].id, self.blog_post_a_id) blog_services.create_new_blog_post(self.user_id_a) blog_post_rights_models = ( blog_services.get_blog_post_rights_by_user_id(self.user_id_a)) self.assertTrue(len(blog_post_rights_models) == 2)
def setUp(self) -> None: super(BlogPostDomainUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.user_id_a = self.get_user_id_from_email( '*****@*****.**') # type: ignore[no-untyped-call] self.blog_post = blog_services.create_new_blog_post(self.user_id_a)
def test_get_homepage_data(self): self.login(self.user_email) json_response = self.get_json( '%s' % (feconf.BLOG_HOMEPAGE_DATA_URL), ) default_tags = config_domain.Registry.get_config_property( 'list_of_default_tags_for_blog_post').value self.assertEqual(default_tags, json_response['list_of_default_tags']) self.assertEqual( self.BLOG_ADMIN_USERNAME, json_response['blog_post_summary_dicts'][0]['author_name']) self.assertEqual( len(json_response['blog_post_summary_dicts']), 1) blog_post_two = blog_services.create_new_blog_post(self.blog_admin_id) change_dict_two = { 'title': 'Sample Title Two', 'thumbnail_filename': 'thumbnail.svg', 'content': '<p>Hello Blog<p>', 'tags': ['Newsletter', 'Learners'] } blog_services.update_blog_post(blog_post_two.id, change_dict_two) blog_services.publish_blog_post(blog_post_two.id) json_response = self.get_json( '%s' % feconf.BLOG_HOMEPAGE_DATA_URL) self.assertEqual( len(json_response['blog_post_summary_dicts']), 2) self.assertTrue( json_response['blog_post_summary_dicts'][0]['published_on'] > json_response['blog_post_summary_dicts'][1]['published_on'] ) self.assertEqual( json_response['blog_post_summary_dicts'][0]['title'], 'Sample Title Two' )
def test_get_post_page_data(self): self.login(self.user_email) blog_post = blog_services.get_blog_post_by_id(self.blog_post.id) json_response = self.get_json( '%s/%s' % (feconf.BLOG_HOMEPAGE_URL, blog_post.url_fragment), ) self.assertEqual(self.BLOG_ADMIN_USERNAME, json_response['blog_post_dict']['author_name']) self.assertEqual('<p>Hello Bloggers</p>', json_response['blog_post_dict']['content']) self.assertEqual(len(json_response['summary_dicts']), 1) self.assertIsNotNone(json_response['profile_picture_data_url']) blog_post_two_id = (blog_services.create_new_blog_post( self.blog_admin_id).id) change_dict_two = { 'title': 'Sample Title Two', 'thumbnail_filename': 'thumbnail.svg', 'content': '<p>Hello Blog</p>', 'tags': ['Newsletter', 'Learners'] } blog_services.update_blog_post(blog_post_two_id, change_dict_two) blog_services.publish_blog_post(blog_post_two_id) blog_post_two = blog_services.get_blog_post_by_id(blog_post_two_id) json_response = self.get_json( '%s/%s' % (feconf.BLOG_HOMEPAGE_URL, blog_post_two.url_fragment), ) self.assertEqual(self.BLOG_ADMIN_USERNAME, json_response['blog_post_dict']['author_name']) self.assertEqual('<p>Hello Blog</p>', json_response['blog_post_dict']['content']) self.assertEqual(len(json_response['summary_dicts']), 2) self.assertIsNotNone(json_response['profile_picture_data_url'])
def setUp(self): super(BlogPostSummaryUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.user_id_a = self.get_user_id_from_email('*****@*****.**') blog_post = blog_services.create_new_blog_post(self.user_id_a) self.blog_post_id = blog_post.id self.blog_post_summary = (blog_services.get_blog_post_summary_by_id( self.blog_post_id))
def setUp(self) -> None: super(BlogPostSummaryUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.user_id_a = self.get_user_id_from_email( '*****@*****.**') # type: ignore[no-untyped-call] blog_post = blog_services.create_new_blog_post( self.user_id_a) # type: ignore[no-untyped-call] self.blog_post_id = blog_post.id self.blog_post_summary = (blog_services.get_blog_post_summary_by_id( self.blog_post_id)) # type: ignore[no-untyped-call]
def test_get_dashboard_page_data(self): # Checks blog editor can access blog dashboard. self.login(self.BLOG_EDITOR_EMAIL) json_response = self.get_json( '%s' % (feconf.BLOG_DASHBOARD_DATA_URL), ) self.assertEqual(self.BLOG_EDITOR_USERNAME, json_response['username']) self.assertIsNone(json_response['published_blog_post_summary_dicts']) self.assertIsNone(json_response['draft_blog_post_summary_dicts']) self.logout() # Checks blog admin can access blog dashboard. self.login(self.BLOG_ADMIN_EMAIL) json_response = self.get_json( '%s' % (feconf.BLOG_DASHBOARD_DATA_URL), ) self.assertEqual(self.BLOG_ADMIN_USERNAME, json_response['username']) self.assertIsNone(json_response['published_blog_post_summary_dicts']) self.assertIsNone(json_response['draft_blog_post_summary_dicts']) self.logout() # Checks non blog-admins and non-editors can not access blog dashboard. self.login(self.user_email) json_response = self.get_json( '%s' % (feconf.BLOG_DASHBOARD_DATA_URL), expected_status_int=401) self.logout() # Checks for correct published and draft blog post summary data. blog_post = blog_services.create_new_blog_post(self.blog_editor_id) change_dict = { 'title': 'Sample Title', 'thumbnail_filename': 'thumbnail.svg', 'content': '<p>Hello Bloggers<p>', 'tags': ['Newsletter', 'Learners'] } self.login(self.BLOG_EDITOR_EMAIL) json_response = self.get_json( '%s' % (feconf.BLOG_DASHBOARD_DATA_URL)) self.assertEqual(self.BLOG_EDITOR_USERNAME, json_response['username']) self.assertEqual( blog_post.id, json_response['draft_blog_post_summary_dicts'][0]['id']) blog_services.update_blog_post(blog_post.id, change_dict) blog_services.publish_blog_post(blog_post.id) json_response = self.get_json( '%s' % (feconf.BLOG_DASHBOARD_DATA_URL)) self.assertEqual(self.BLOG_EDITOR_USERNAME, json_response['username']) self.assertEqual( blog_post.id, json_response['published_blog_post_summary_dicts'][0]['id']) self.assertEqual( change_dict['title'], json_response['published_blog_post_summary_dicts'][0]['title']) self.assertIsNone(json_response['draft_blog_post_summary_dicts'])
def setUp(self): super(BlogPostRightsDomainUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.signup('*****@*****.**', 'B') self.user_id_a = self.get_user_id_from_email('*****@*****.**') self.user_id_b = self.get_user_id_from_email('*****@*****.**') blog_post = blog_services.create_new_blog_post(self.user_id_a) self.blog_post_id = blog_post.id self.blog_post_rights = (blog_services.get_blog_post_rights( self.blog_post_id))
def setUp(self): """Completes the sign-up process for the various users.""" super(BlogPostHandlerTests, self).setUp() self.signup(self.BLOG_ADMIN_EMAIL, self.BLOG_ADMIN_USERNAME) self.signup(self.BLOG_EDITOR_EMAIL, self.BLOG_EDITOR_USERNAME) self.signup(self.user_email, self.username) self.add_user_role(self.BLOG_ADMIN_USERNAME, feconf.ROLE_ID_BLOG_ADMIN) self.add_user_role(self.BLOG_EDITOR_USERNAME, feconf.ROLE_ID_BLOG_POST_EDITOR) self.blog_admin_id = (self.get_user_id_from_email( self.BLOG_ADMIN_EMAIL)) self.blog_editor_id = (self.get_user_id_from_email( self.BLOG_EDITOR_EMAIL)) self.blog_post = (blog_services.create_new_blog_post( self.blog_editor_id))
def setUp(self) -> None: super(BlogPostRightsDomainUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.signup('*****@*****.**', 'B') self.user_id_a = self.get_user_id_from_email( '*****@*****.**') # type: ignore[no-untyped-call] self.user_id_b = self.get_user_id_from_email( '*****@*****.**') # type: ignore[no-untyped-call] blog_post = blog_services.create_new_blog_post( self.user_id_a) # type: ignore[no-untyped-call] self.blog_post_id = blog_post.id self.blog_post_rights = (blog_services.get_blog_post_rights( self.blog_post_id)) # type: ignore[no-untyped-call]
def setUp(self): """Complete the setup process for testing.""" super(BlogPostHandlerTest, self).setUp() self.signup(self.BLOG_ADMIN_EMAIL, self.BLOG_ADMIN_USERNAME) self.blog_admin_id = (self.get_user_id_from_email( self.BLOG_ADMIN_EMAIL)) self.add_user_role(self.BLOG_ADMIN_USERNAME, feconf.ROLE_ID_BLOG_ADMIN) self.signup(self.user_email, self.username) self.blog_post = blog_services.create_new_blog_post(self.blog_admin_id) self.change_dict = { 'title': 'Sample Title', 'thumbnail_filename': 'thumbnail.svg', 'content': '<p>Hello Bloggers</p>', 'tags': ['Newsletter', 'Learners'] } blog_services.update_blog_post(self.blog_post.id, self.change_dict) blog_services.publish_blog_post(self.blog_post.id)
def setUp(self): super(BlogPostDomainUnitTests, self).setUp() self.signup('*****@*****.**', 'A') self.user_id_a = self.get_user_id_from_email('*****@*****.**') self.blog_post = blog_services.create_new_blog_post(self.user_id_a)
def post(self) -> None: """Handles POST requests to create a new blog post draft.""" new_blog_post = blog_services.create_new_blog_post(self.user_id) self.render_json({'blog_post_id': new_blog_post.id})