def test_generate_count_equal_to_publish_count(self): self.login(self.ADMIN_EMAIL, is_super_admin=True) csrf_token = self.get_new_csrf_token() self.post_json('/adminhandler', { 'action': 'generate_dummy_explorations', 'num_dummy_exps_to_generate': 2, 'num_dummy_exps_to_publish': 2 }, csrf_token=csrf_token) generated_exps = exp_services.get_all_exploration_summaries() published_exps = exp_services.get_recently_published_exp_summaries(5) self.assertEqual(len(generated_exps), 2) self.assertEqual(len(published_exps), 2)
def test_generate_count_equal_to_publish_count(self): self.signup(self.ADMIN_EMAIL, self.ADMIN_USERNAME) self.login(self.ADMIN_EMAIL, is_super_admin=True) response = self.testapp.get('/admin') csrf_token = self.get_csrf_token_from_response(response) self.post_json('/adminhandler', { 'action': 'generate_dummy_explorations', 'num_dummy_exps_to_generate': 2, 'num_dummy_exps_to_publish': 2 }, csrf_token) generated_exps = exp_services.get_all_exploration_summaries() published_exps = exp_services.get_recently_published_exp_summaries(5) self.assertEqual(len(generated_exps), 2) self.assertEqual(len(published_exps), 2)
def test_generate_count_less_than_publish_count(self): self.login(self.ADMIN_EMAIL, is_super_admin=True) csrf_token = self.get_new_csrf_token() generated_exps_response = self.post_json('/adminhandler', { 'action': 'generate_dummy_explorations', 'num_dummy_exps_to_generate': 2, 'num_dummy_exps_to_publish': 5 }, csrf_token=csrf_token, expected_status_int=400) self.assertEqual(generated_exps_response['status_code'], 400) generated_exps = exp_services.get_all_exploration_summaries() published_exps = exp_services.get_recently_published_exp_summaries(5) self.assertEqual(len(generated_exps), 0) self.assertEqual(len(published_exps), 0)
def get_recently_published_exp_summary_dicts(limit): """Returns a list of recently published explorations with the given language code. """ recently_published_exploration_summaries = [ exp_summary for exp_summary in exp_services.get_recently_published_exp_summaries(limit).values()] # Arranging recently published exploration summaries with respect to time. # sorted() is used to sort the random list of recently published summaries. summaries = sorted( recently_published_exploration_summaries, key=lambda exp_summary: exp_summary.first_published_msec, reverse=True) return get_displayable_exp_summary_dicts(summaries)
def get_recently_published_exp_summary_dicts(limit): """Returns a list of recently published explorations with the given language code. """ recently_published_exploration_summaries = [ exp_summary for exp_summary in exp_services.get_recently_published_exp_summaries(limit).values() ] # Arranging recently published exploration summaries with respect to time. # sorted() is used to sort the random list of recently published summaries. summaries = sorted( recently_published_exploration_summaries, key=lambda exp_summary: exp_summary.first_published_msec, reverse=True) return get_displayable_exp_summary_dicts(summaries)
def test_handler_raises_error_with_non_int_num_dummy_exps_to_publish(self): self.login(self.ADMIN_EMAIL, is_super_admin=True) csrf_token = self.get_new_csrf_token() with self.assertRaisesRegexp(Exception, 'invalid_type is not a number'): self.post_json('/adminhandler', { 'action': 'generate_dummy_explorations', 'num_dummy_exps_to_publish': 'invalid_type', 'num_dummy_exps_to_generate': 1 }, csrf_token=csrf_token) generated_exps = exp_services.get_all_exploration_summaries() published_exps = exp_services.get_recently_published_exp_summaries(5) self.assertEqual(generated_exps, {}) self.assertEqual(published_exps, {}) self.logout()
def test_cannot_generate_dummy_explorations_in_prod_mode(self): self.login(self.ADMIN_EMAIL, is_super_admin=True) csrf_token = self.get_new_csrf_token() prod_mode_swap = self.swap(constants, 'DEV_MODE', False) assert_raises_regexp_context_manager = self.assertRaisesRegexp( Exception, 'Cannot generate dummy explorations in production.') with assert_raises_regexp_context_manager, prod_mode_swap: self.post_json('/adminhandler', { 'action': 'generate_dummy_explorations', 'num_dummy_exps_to_generate': 10, 'num_dummy_exps_to_publish': 3 }, csrf_token=csrf_token) generated_exps = exp_services.get_all_exploration_summaries() published_exps = exp_services.get_recently_published_exp_summaries(5) self.assertEqual(generated_exps, {}) self.assertEqual(published_exps, {}) self.logout()
def get_recently_published_exp_summary_dicts(limit): """Returns a list of recently published explorations. Args: limit: int. The maximum number of explorations to return. Returns: list(dict). Each dict in this list represents a featured activity in human readable form. For example: [ { 'category': u'A category', 'community_owned': False, 'id': 'eid2', 'language_code': 'en', 'num_views': 0, 'objective': u'An objective', 'status': 'public', 'tags': [], 'thumbnail_bg_color': '#a33f40', 'thumbnail_icon_url': self.get_static_asset_url( '/images/subjects/Lightbulb.svg'), 'title': u'Exploration 2 Albert title', }, ] """ recently_published_exploration_summaries = [ exp_summary for exp_summary in exp_services.get_recently_published_exp_summaries(limit).values() ] # Arranging recently published exploration summaries with respect to time. # sorted() is used to sort the random list of recently published summaries. summaries = sorted( recently_published_exploration_summaries, key=lambda exp_summary: exp_summary.first_published_msec, reverse=True) return get_displayable_exp_summary_dicts(summaries)
def get_recently_published_exp_summary_dicts(limit): """Returns a list of recently published explorations. Args: limit: int. The maximum number of explorations to return. Return: list(dict). Each dict in this list represents a featured activity in human readable form. For example: [ { 'category': u'A category', 'community_owned': False, 'id': 'eid2', 'language_code': 'en', 'num_views': 0, 'objective': u'An objective', 'status': 'public', 'tags': [], 'thumbnail_bg_color': '#a33f40', 'thumbnail_icon_url': self.get_static_asset_url( '/images/subjects/Lightbulb.svg'), 'title': u'Exploration 2 Albert title', }, ] """ recently_published_exploration_summaries = [ exp_summary for exp_summary in exp_services.get_recently_published_exp_summaries(limit).values()] # Arranging recently published exploration summaries with respect to time. # sorted() is used to sort the random list of recently published summaries. summaries = sorted( recently_published_exploration_summaries, key=lambda exp_summary: exp_summary.first_published_msec, reverse=True) return get_displayable_exp_summary_dicts(summaries)