def test_get_library_groups(self): """The exploration with id '2' is an exploration in the Mathematics category. The call to get_library_groups() should return the exploration as part of the Mathematics & Statistics group. """ library_groups = summary_services.get_library_groups([]) expected_exploration_summary_dict = { 'category': u'Algorithms', 'community_owned': True, 'id': '2', 'language_code': constants.DEFAULT_LANGUAGE_CODE, 'num_views': 0, 'objective': u'discover the binary search algorithm', 'ratings': feconf.get_empty_ratings(), 'status': u'public', 'tags': [], 'title': u'The Lazy Magician', 'thumbnail_bg_color': '#d0982a', 'thumbnail_icon_url': '/subjects/Algorithms.svg', } expected_group = { 'categories': ['Algorithms', 'Computing', 'Programming'], 'header_i18n_id': 'I18N_LIBRARY_GROUPS_COMPUTING', } self.assertEqual(len(library_groups), 1) self.assertDictContainsSubset(expected_group, library_groups[0]) self.assertEqual( len(library_groups[0]['activity_summary_dicts']), 1) actual_exploration_summary_dict = ( library_groups[0]['activity_summary_dicts'][0]) self.assertDictContainsSubset(expected_exploration_summary_dict, ( actual_exploration_summary_dict))
def test_get_library_groups(self): """The exploration with id '2' is an exploration in the Mathematics category. The call to get_library_groups() should return the exploration as part of the Mathematics & Statistics group. """ library_groups = summary_services.get_library_groups([]) expected_exploration_summary_dict = { 'category': u'Algorithms', 'community_owned': True, 'id': '2', 'language_code': feconf.DEFAULT_LANGUAGE_CODE, 'num_views': 0, 'objective': u'discover the binary search algorithm', 'ratings': feconf.get_empty_ratings(), 'status': u'public', 'tags': [], 'title': u'The Lazy Magician', 'thumbnail_bg_color': '#d0982a', 'thumbnail_icon_url': self.get_static_asset_url( '/images/subjects/Algorithms.svg'), } expected_group = { 'categories': ['Algorithms', 'Computing', 'Programming'], 'header_i18n_id': 'I18N_LIBRARY_GROUPS_COMPUTING', } self.assertEqual(len(library_groups), 1) self.assertDictContainsSubset(expected_group, library_groups[0]) self.assertEqual( len(library_groups[0]['activity_summary_dicts']), 1) actual_exploration_summary_dict = ( library_groups[0]['activity_summary_dicts'][0]) self.assertDictContainsSubset(expected_exploration_summary_dict, ( actual_exploration_summary_dict))
def get(self): """Handles GET requests.""" # TODO(sll): Support index pages for other language codes. summary_dicts_by_category = summary_services.get_library_groups([ feconf.DEFAULT_LANGUAGE_CODE]) featured_activity_summary_dicts = ( summary_services.get_featured_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE])) preferred_language_codes = [feconf.DEFAULT_LANGUAGE_CODE] if self.user_id: user_settings = user_services.get_user_settings(self.user_id) preferred_language_codes = user_settings.preferred_language_codes if featured_activity_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': featured_activity_summary_dicts, 'categories': [], 'header': feconf.LIBRARY_CATEGORY_FEATURED_EXPLORATIONS, }) self.values.update({ 'activity_summary_dicts_by_category': ( summary_dicts_by_category), 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)
def get(self): """Handles GET requests.""" # TODO(sll): Support index pages for other language codes. summary_dicts_by_category = summary_services.get_library_groups( [feconf.DEFAULT_LANGUAGE_CODE]) featured_activity_summary_dicts = ( summary_services.get_featured_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE])) preferred_language_codes = [feconf.DEFAULT_LANGUAGE_CODE] if self.user_id: user_settings = user_services.get_user_settings(self.user_id) preferred_language_codes = user_settings.preferred_language_codes if featured_activity_summary_dicts: summary_dicts_by_category.insert( 0, { 'activity_summary_dicts': featured_activity_summary_dicts, 'categories': [], 'header': feconf.LIBRARY_CATEGORY_FEATURED_EXPLORATIONS, }) self.values.update({ 'activity_summary_dicts_by_category': (summary_dicts_by_category), 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)
def get(self): """Handles GET requests.""" # TODO(sll): Support index pages for other language codes. summary_dicts_by_category = summary_services.get_library_groups([ feconf.DEFAULT_LANGUAGE_CODE]) recently_published_summary_dicts = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FOR_LIBRARY_PAGE)) top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE], feconf.NUMBER_OF_TOP_RATED_EXPLORATIONS_FOR_LIBRARY_PAGE)) featured_activity_summary_dicts = ( summary_services.get_featured_activity_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE])) preferred_language_codes = [feconf.DEFAULT_LANGUAGE_CODE] if self.user_id: user_settings = user_services.get_user_settings(self.user_id) preferred_language_codes = user_settings.preferred_language_codes if recently_published_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': recently_published_summary_dicts, 'categories': [], 'header_i18n_id': feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED, 'has_full_results_page': True, 'full_results_url': feconf.LIBRARY_RECENTLY_PUBLISHED_URL, 'protractor_id': 'recently-published', }) if top_rated_activity_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': top_rated_activity_summary_dicts, 'categories': [], 'header_i18n_id': ( feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS), 'has_full_results_page': True, 'full_results_url': feconf.LIBRARY_TOP_RATED_URL, 'protractor_id': 'top-rated', }) if featured_activity_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': featured_activity_summary_dicts, 'categories': [], 'header_i18n_id': feconf.LIBRARY_CATEGORY_FEATURED_ACTIVITIES, 'has_full_results_page': False, 'full_results_url': None, }) self.values.update({ 'activity_summary_dicts_by_category': ( summary_dicts_by_category), 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)