def test_announcement_i18n_title(self):
        locale = 'de'
        announcement = self._add_announcement_and_translation(locale)
        actions.login('*****@*****.**')
        actions.register(self, 'John Doe')

        # Verify that one-off title translation also works.
        try:
            sites.set_path_info('/' + self.COURSE)
            ctx = sites.get_course_for_current_request()
            save_locale = ctx.get_current_locale()
            key = announcements.TranslatableResourceAnnouncement.key_for_entity(
                announcement)

            # Untranslated
            ctx.set_current_locale(None)
            i18n_title = str(
                announcements.TranslatableResourceAnnouncement.get_i18n_title(
                    key))
            self.assertEquals('Test Announcement', i18n_title)

            # Translated
            ctx.set_current_locale(locale)
            i18n_title = str(
                announcements.TranslatableResourceAnnouncement.get_i18n_title(
                    key))
            self.assertEquals('TEST ANNOUNCEMENT', i18n_title)
        finally:
            ctx.set_current_locale(save_locale)
            sites.unset_path_info()
    def test_announcement_i18n_title(self):
        locale = 'de'
        announcement = self._add_announcement_and_translation(locale)
        actions.login('*****@*****.**')
        actions.register(self, 'John Doe')

        # Verify that one-off title translation also works.
        try:
            sites.set_path_info('/' + self.COURSE)
            ctx = sites.get_course_for_current_request()
            save_locale = ctx.get_current_locale()
            key = announcements.TranslatableResourceAnnouncement.key_for_entity(
                announcement)

            # Untranslated
            ctx.set_current_locale(None)
            i18n_title = str(
                announcements.TranslatableResourceAnnouncement.get_i18n_title(
                    key))
            self.assertEquals('Test Announcement', i18n_title)

            # Translated
            ctx.set_current_locale(locale)
            i18n_title = str(
                announcements.TranslatableResourceAnnouncement.get_i18n_title(
                    key))
            self.assertEquals('TEST ANNOUNCEMENT', i18n_title)
        finally:
            ctx.set_current_locale(save_locale)
            sites.unset_path_info()
Example #3
0
    def __del__(self):
        """Reset the namespace
        """
        try:
            sites.unset_path_info()
        except Exception as e:  # pylint: disable=broad-except
            logging.error(e)

        namespace_manager.set_namespace(self.old_namespace)
    def run(self):
        app_context = self._get_app_context_or_die(
            self.etl_args.course_url_prefix)
        course = courses.Course(None, app_context=app_context)

        sites.set_path_info(app_context.slug)
        courses.Course.set_current(course)
        try:
            with common_utils.Namespace(app_context.get_namespace_name()):
                super(CourseJob, self).run()
        finally:
            courses.Course.clear_current()
            sites.unset_path_info()
Example #5
0
    def run(self):
        app_context = self._get_app_context_or_die(
            self.etl_args.course_url_prefix)
        course = courses.Course(None, app_context=app_context)

        sites.set_path_info(app_context.slug)
        courses.Course.set_current(course)
        try:
            with common_utils.Namespace(app_context.get_namespace_name()):
                super(CourseJob, self).run()
        finally:
            courses.Course.clear_current()
            sites.unset_path_info()
def check_personalization(browser, response):
    """Checks that the login/logout text is correct."""
    sites.set_path_info(browser.last_request_url)
    app_context = sites.get_course_for_current_request()
    sites.unset_path_info()

    browsable = app_context.get_environ()['course']['browsable']

    if browsable:
        callbacks = [
            functools.partial(check_login_link, response.body),
            functools.partial(check_logout_link, response.body)
        ]
        assert_at_least_one_succeeds(callbacks)
    else:
        check_logout_link(response.body)
Example #7
0
    def run(self):
        """Override run() and setup app_context, course and a namespace."""
        # ETL import model is complex; run this import here not to interfere
        from controllers import sites

        app_context = self._get_app_context_or_die(
            self.etl_args.course_url_prefix)
        course = courses.Course(None, app_context=app_context)

        sites.set_path_info(app_context.slug)
        courses.Course.set_current(course)
        try:
            with common_utils.Namespace(app_context.get_namespace_name()):
                super(_BaseJob, self).run()
        finally:
            courses.Course.clear_current()
            sites.unset_path_info()
Example #8
0
    def run(self):
        """Override run() and setup app_context, course and a namespace."""
        # ETL import model is complex; run this import here not to interfere
        from controllers import sites

        app_context = self._get_app_context_or_die(
            self.etl_args.course_url_prefix)
        course = courses.Course(None, app_context=app_context)

        sites.set_path_info(app_context.slug)
        courses.Course.set_current(course)
        try:
            with common_utils.Namespace(app_context.get_namespace_name()):
                super(_BaseJob, self).run()
        finally:
            courses.Course.clear_current()
            sites.unset_path_info()
Example #9
0
    def execute_all_deferred_tasks(self, queue_name='default',
                                   iteration_limit=None):
        """Executes all pending deferred tasks."""

        # Outer loop here because some tasks (esp. map/reduce) will enqueue
        # more tasks as part of their operation.
        tasks_executed = 0
        while iteration_limit is None or iteration_limit > 0:
            tasks = self.taskq.GetTasks(queue_name)
            if not tasks:
                break
            for task in tasks:
                old_namespace = namespace_manager.get_namespace()
                try:
                    self.task_dispatcher.dispatch_task(task)
                    tasks_executed += 1
                finally:
                    if sites.has_path_info():
                        sites.unset_path_info()
                    namespace_manager.set_namespace(old_namespace)
            if iteration_limit:
                iteration_limit -= 1
        return tasks_executed