예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)