def test_get_multi_rights(self): topic_rights = topic_fetchers.get_multi_topic_rights( [self.TOPIC_ID, 'invalid_id']) self.assertEqual(len(topic_rights), 2) self.assertEqual(topic_rights[0].id, self.TOPIC_ID) self.assertEqual(topic_rights[0].manager_ids, [self.user_id_a]) self.assertFalse(topic_rights[0].topic_is_published) self.assertIsNone(topic_rights[1])
def test_get_multi_rights(self) -> None: topic_rights: List[Optional[topic_domain.TopicRights]] = ( topic_fetchers.get_multi_topic_rights( [self.TOPIC_ID, 'invalid_id'])) # Ruling out the possibility of None for mypy type checking. assert topic_rights[0] is not None self.assertEqual(len(topic_rights), 2) self.assertEqual(topic_rights[0].id, self.TOPIC_ID) self.assertEqual(topic_rights[0].manager_ids, [self.user_id_a]) self.assertFalse(topic_rights[0].topic_is_published) self.assertIsNone(topic_rights[1])
def get(self, classroom_url_fragment): """Handles GET requests.""" classroom = classroom_services.get_classroom_by_url_fragment( classroom_url_fragment) topic_ids = classroom.topic_ids topic_summaries = topic_fetchers.get_multi_topic_summaries(topic_ids) topic_rights = topic_fetchers.get_multi_topic_rights(topic_ids) topic_summary_dicts = [] for index, summary in enumerate(topic_summaries): if summary is not None: topic_summary_dict = summary.to_dict() topic_summary_dict['is_published'] = ( topic_rights[index].topic_is_published) topic_summary_dicts.append(topic_summary_dict) self.values.update({ 'topic_summary_dicts': topic_summary_dicts, 'topic_list_intro': classroom.topic_list_intro, 'course_details': classroom.course_details, 'name': classroom.name }) self.render_json(self.values)