def test_get_topic_summary_by_id(self): topic_summary = topic_fetchers.get_topic_summary_by_id(self.TOPIC_ID) self.assertEqual(topic_summary.id, self.TOPIC_ID) self.assertEqual(topic_summary.name, 'Name') self.assertEqual(topic_summary.description, 'Description') self.assertEqual(topic_summary.canonical_story_count, 0) self.assertEqual(topic_summary.additional_story_count, 0) self.assertEqual(topic_summary.uncategorized_skill_count, 2) self.assertEqual(topic_summary.subtopic_count, 1) self.assertEqual(topic_summary.thumbnail_filename, 'topic.svg') self.assertEqual(topic_summary.thumbnail_bg_color, '#C6DCDA') fake_topic_id = topic_fetchers.get_new_topic_id() fake_topic = topic_fetchers.get_topic_summary_by_id( fake_topic_id, strict=False) self.assertIsNone(fake_topic)
def test_get_topic_summary_by_id(self) -> None: topic_summary: Optional[topic_domain.TopicSummary] = ( topic_fetchers.get_topic_summary_by_id(self.TOPIC_ID)) # Ruling out the possibility of None for mypy type checking. assert topic_summary is not None self.assertEqual(topic_summary.id, self.TOPIC_ID) self.assertEqual(topic_summary.name, 'Name') self.assertEqual(topic_summary.description, 'Description') self.assertEqual(topic_summary.canonical_story_count, 0) self.assertEqual(topic_summary.additional_story_count, 0) self.assertEqual(topic_summary.uncategorized_skill_count, 2) self.assertEqual(topic_summary.subtopic_count, 1) self.assertEqual(topic_summary.thumbnail_filename, 'topic.svg') self.assertEqual(topic_summary.thumbnail_bg_color, '#C6DCDA') fake_topic_id = topic_fetchers.get_new_topic_id() fake_topic: Optional[topic_domain.TopicSummary] = ( topic_fetchers.get_topic_summary_by_id(fake_topic_id, strict=False)) self.assertIsNone(fake_topic)
def test_get(self): self.signup(self.CURRICULUM_ADMIN_EMAIL, self.CURRICULUM_ADMIN_USERNAME) admin_id = self.get_user_id_from_email(self.CURRICULUM_ADMIN_EMAIL) self.set_curriculum_admins([self.CURRICULUM_ADMIN_USERNAME]) self.login(self.CURRICULUM_ADMIN_EMAIL, is_super_admin=True) topic_id_1 = topic_fetchers.get_new_topic_id() topic_id_2 = topic_fetchers.get_new_topic_id() private_topic = topic_domain.Topic.create_default_topic( topic_id_1, 'private_topic_name', 'private-topic-name', 'description') topic_services.save_new_topic(admin_id, private_topic) public_topic = topic_domain.Topic.create_default_topic( topic_id_2, 'public_topic_name', 'public-topic-name', 'description') public_topic.thumbnail_filename = 'Topic.svg' public_topic.thumbnail_bg_color = ( constants.ALLOWED_THUMBNAIL_BG_COLORS['topic'][0]) public_topic.subtopics = [ topic_domain.Subtopic( 1, 'Title', ['skill_id_1', 'skill_id_2', 'skill_id_3'], 'image.svg', constants.ALLOWED_THUMBNAIL_BG_COLORS['subtopic'][0], 21131, 'dummy-subtopic-three') ] public_topic.next_subtopic_id = 2 topic_services.save_new_topic(admin_id, public_topic) topic_services.publish_topic(topic_id_2, admin_id) csrf_token = self.get_new_csrf_token() new_config_value = [{ 'name': 'math', 'topic_ids': [topic_id_1, topic_id_2], 'course_details': 'Course details for classroom.', 'topic_list_intro': 'Topics covered for classroom', 'url_fragment': 'math', }] payload = { 'action': 'save_config_properties', 'new_config_property_values': { config_domain.CLASSROOM_PAGES_DATA.name: (new_config_value), } } self.post_json('/adminhandler', payload, csrf_token=csrf_token) self.logout() json_response = self.get_json('%s/%s' % (feconf.CLASSROOM_DATA_HANDLER, 'math')) public_topic_summary_dict = ( topic_fetchers.get_topic_summary_by_id(topic_id_2).to_dict()) public_topic_summary_dict['is_published'] = True private_topic_summary_dict = ( topic_fetchers.get_topic_summary_by_id(topic_id_1).to_dict()) private_topic_summary_dict['is_published'] = False expected_dict = { 'name': 'math', 'topic_summary_dicts': [private_topic_summary_dict, public_topic_summary_dict], 'course_details': 'Course details for classroom.', 'topic_list_intro': 'Topics covered for classroom' } self.assertDictContainsSubset(expected_dict, json_response)