def test_language_code_filter(self): """Note that both EXP_ID_1 is in Spanish and EXP_ID_2 is in English.""" activity_services.update_featured_activity_references([ activity_domain.ActivityReference( constants.ACTIVITY_TYPE_EXPLORATION, self.EXP_ID_1), activity_domain.ActivityReference( constants.ACTIVITY_TYPE_EXPLORATION, self.EXP_ID_2) ]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts( [constants.DEFAULT_LANGUAGE_CODE])) self.assertEqual(len(featured_activity_summaries), 1) self.assertDictContainsSubset( { 'language_code': constants.DEFAULT_LANGUAGE_CODE, 'id': self.EXP_ID_2, }, featured_activity_summaries[0]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts( [self.LANGUAGE_CODE_ES])) self.assertEqual(len(featured_activity_summaries), 1) self.assertDictContainsSubset( { 'language_code': self.LANGUAGE_CODE_ES, 'id': self.EXP_ID_1, }, featured_activity_summaries[0]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts( [constants.DEFAULT_LANGUAGE_CODE, self.LANGUAGE_CODE_ES])) self.assertEqual(len(featured_activity_summaries), 2) self.assertDictContainsSubset( { 'language_code': self.LANGUAGE_CODE_ES, 'id': self.EXP_ID_1, }, featured_activity_summaries[0]) self.assertDictContainsSubset( { 'language_code': constants.DEFAULT_LANGUAGE_CODE, 'id': self.EXP_ID_2, }, featured_activity_summaries[1]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts( ['nonexistent_language_code'])) self.assertEqual(len(featured_activity_summaries), 0) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([])) self.assertEqual(len(featured_activity_summaries), 0)
def test_language_code_filter(self): """Note that both EXP_ID_1 is in Spanish and EXP_ID_2 is in English.""" activity_services.update_featured_activity_references([ activity_domain.ActivityReference( feconf.ACTIVITY_TYPE_EXPLORATION, self.EXP_ID_1), activity_domain.ActivityReference( feconf.ACTIVITY_TYPE_EXPLORATION, self.EXP_ID_2) ]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([ feconf.DEFAULT_LANGUAGE_CODE])) self.assertEqual(len(featured_activity_summaries), 1) self.assertDictContainsSubset({ 'language_code': feconf.DEFAULT_LANGUAGE_CODE, 'id': self.EXP_ID_2, }, featured_activity_summaries[0]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([ self.LANGUAGE_CODE_ES])) self.assertEqual(len(featured_activity_summaries), 1) self.assertDictContainsSubset({ 'language_code': self.LANGUAGE_CODE_ES, 'id': self.EXP_ID_1, }, featured_activity_summaries[0]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([ feconf.DEFAULT_LANGUAGE_CODE, self.LANGUAGE_CODE_ES])) self.assertEqual(len(featured_activity_summaries), 2) self.assertDictContainsSubset({ 'language_code': self.LANGUAGE_CODE_ES, 'id': self.EXP_ID_1, }, featured_activity_summaries[0]) self.assertDictContainsSubset({ 'language_code': feconf.DEFAULT_LANGUAGE_CODE, 'id': self.EXP_ID_2, }, featured_activity_summaries[1]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([ 'nonexistent_language_code'])) self.assertEqual(len(featured_activity_summaries), 0) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([])) self.assertEqual(len(featured_activity_summaries), 0)
def test_for_featured_explorations(self): """Note that both EXP_ID_1 and EXP_ID_2 are public. However, only EXP_ID_2 is featured, so the call to get_featured_explorations() should only return [EXP_ID_2]. """ activity_services.update_featured_activity_references([ activity_domain.ActivityReference( constants.ACTIVITY_TYPE_EXPLORATION, self.EXP_ID_2) ]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([ constants.DEFAULT_LANGUAGE_CODE])) self.assertEqual(len(featured_activity_summaries), 1) self.assertDictContainsSubset({ 'status': 'public', 'thumbnail_bg_color': '#a33f40', 'community_owned': False, 'tags': [], 'thumbnail_icon_url': '/subjects/Lightbulb.svg', 'language_code': constants.DEFAULT_LANGUAGE_CODE, 'id': self.EXP_ID_2, 'category': 'A category', 'ratings': feconf.get_empty_ratings(), 'title': 'A title', 'num_views': 0, 'objective': 'An objective' }, featured_activity_summaries[0])
def test_for_featured_explorations(self): """Note that both EXP_ID_1 and EXP_ID_2 are public. However, only EXP_ID_2 is featured, so the call to get_featured_explorations() should only return [EXP_ID_2]. """ activity_services.update_featured_activity_references([ activity_domain.ActivityReference( feconf.ACTIVITY_TYPE_EXPLORATION, self.EXP_ID_2) ]) featured_activity_summaries = ( summary_services.get_featured_activity_summary_dicts([ feconf.DEFAULT_LANGUAGE_CODE])) self.assertEqual(len(featured_activity_summaries), 1) self.assertDictContainsSubset({ 'status': 'public', 'thumbnail_bg_color': '#a33f40', 'community_owned': False, 'tags': [], 'thumbnail_icon_url': self.get_static_asset_url( '/images/subjects/Lightbulb.svg'), 'language_code': feconf.DEFAULT_LANGUAGE_CODE, 'id': self.EXP_ID_2, 'category': 'A category', 'ratings': feconf.get_empty_ratings(), 'title': 'A title', 'num_views': 0, 'objective': 'An objective' }, featured_activity_summaries[0])
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)
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_exploration_summary_dicts( )) top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE])) 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': feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED, }) if top_rated_activity_summary_dicts: summary_dicts_by_category.insert( 0, { 'activity_summary_dicts': top_rated_activity_summary_dicts, 'categories': [], 'header': feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS, }) if featured_activity_summary_dicts: summary_dicts_by_category.insert( 0, { 'activity_summary_dicts': featured_activity_summary_dicts, 'categories': [], 'header': feconf.LIBRARY_CATEGORY_FEATURED_ACTIVITIES, }) 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_exploration_summary_dicts()) top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE])) 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': feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED, }) if top_rated_activity_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': top_rated_activity_summary_dicts, 'categories': [], 'header': feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS, }) if featured_activity_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': featured_activity_summary_dicts, 'categories': [], 'header': feconf.LIBRARY_CATEGORY_FEATURED_ACTIVITIES, }) self.values.update({ 'activity_summary_dicts_by_category': ( summary_dicts_by_category), 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)