Example #1
0
    def setUp(self):
        utils.set_utcnow_for_test(0)
        resources.clear_caches()
        resources.set_active_bundle_name('1')

        self.temp_entity_keys = []
        self.put_resource('1', 'base.html.template', 50,
                          'hi! {% block foo %}{% endblock foo %}')
        self.put_resource('1', 'base.html.template:es', 40,
                          '\xc2\xa1hola! {% block foo %}{% endblock foo %}')
        self.put_resource(
            '1', 'page.html.template', 30,
            '{% extends "base.html.template" %} '
            '{% block foo %}default{% endblock foo %}')
        self.put_resource(
            '1', 'page.html.template:fr', 20,
            '{% extends "base.html.template" %} '
            '{% block foo %}fran\xc3\xa7ais{% endblock foo %}')
        self.put_resource('1', 'static.html', 30, 'hello')
        self.put_resource('1', 'static.html:fr', 20, 'bonjour')
        self.put_resource('1', 'data', 10, '\xff\xfe\xfd\xfc')

        self.fetched = []
        self.compiled = []
        self.rendered = []

        self.resource_get_by_key_name_original = Resource.get_by_key_name
        self.template_init_original = django.template.Template.__init__
        self.template_render_original = django.template.Template.render

        test_self = self

        @staticmethod
        def resource_get_by_key_name_for_test(key_name, parent, *args,
                                              **kwargs):
            test_self.fetched.append(key_name)  # track datastore fetches
            return test_self.resource_get_by_key_name_original(
                key_name, parent, *args, **kwargs)

        def template_init_for_test(self, content, origin, name, *args,
                                   **kwargs):
            test_self.compiled.append(name)  # track template compilations
            return test_self.template_init_original(self, content, origin,
                                                    name, *args, **kwargs)

        def template_render_for_test(self, context, *args, **kwargs):
            test_self.rendered.append(self.name)  # track render calls
            return test_self.template_render_original(self, context, *args,
                                                      **kwargs)

        Resource.get_by_key_name = resource_get_by_key_name_for_test
        django.template.Template.__init__ = template_init_for_test
        django.template.Template.render = template_render_for_test
Example #2
0
 def test_set_active_bundle_name(self):
     # Verifies that get_localized and get_rendered are properly affected
     # by set_active_bundle_name.
     self.put_resource('1', 'xyz', 0, 'one')
     self.put_resource('2', 'xyz', 0, 'two')
     assert resources.get_localized('xyz', 'en').content == 'one'
     assert resources.get_rendered('xyz', 'en') == 'one'
     resources.set_active_bundle_name('2')
     assert resources.get_localized('xyz', 'en').content == 'two'
     assert resources.get_rendered('xyz', 'en') == 'two'
     resources.set_active_bundle_name('1')
     assert resources.get_localized('xyz', 'en').content == 'one'
     assert resources.get_rendered('xyz', 'en') == 'one'
Example #3
0
 def test_set_active_bundle_name(self):
     # Verifies that get_localized and get_rendered are properly affected
     # by set_active_bundle_name.
     self.put_resource('1', 'xyz', 0, 'one')
     self.put_resource('2', 'xyz', 0, 'two')
     assert resources.get_localized('xyz', 'en').content == 'one'
     assert resources.get_rendered('xyz', 'en') == 'one'
     resources.set_active_bundle_name('2')
     assert resources.get_localized('xyz', 'en').content == 'two'
     assert resources.get_rendered('xyz', 'en') == 'two'
     resources.set_active_bundle_name('1')
     assert resources.get_localized('xyz', 'en').content == 'one'
     assert resources.get_rendered('xyz', 'en') == 'one'
 def test_set_active_bundle_name(self):
     # Verifies that get_localized and get_rendered are properly affected
     # by set_active_bundle_name.
     self.put_resource("1", "xyz", 0, "one")
     self.put_resource("2", "xyz", 0, "two")
     assert resources.get_localized("xyz", "en").content == "one"
     assert resources.get_rendered("xyz", "en") == "one"
     resources.set_active_bundle_name("2")
     assert resources.get_localized("xyz", "en").content == "two"
     assert resources.get_rendered("xyz", "en") == "two"
     resources.set_active_bundle_name("1")
     assert resources.get_localized("xyz", "en").content == "one"
     assert resources.get_rendered("xyz", "en") == "one"
Example #5
0
    def setUp(self):
        utils.set_utcnow_for_test(0)
        resources.clear_caches()
        resources.set_active_bundle_name('1')

        self.temp_entity_keys = []
        self.put_resource('1', 'base.html.template', 50,
                          'hi! {% block foo %}{% endblock foo %}')
        self.put_resource('1', 'base.html.template:es', 40,
                          '\xc2\xa1hola! {% block foo %}{% endblock foo %}')
        self.put_resource('1', 'page.html.template', 30,
                          '{% extends "base.html.template" %} '
                          '{% block foo %}default{% endblock foo %}')
        self.put_resource('1', 'page.html.template:fr', 20,
                          '{% extends "base.html.template" %} '
                          '{% block foo %}fran\xc3\xa7ais{% endblock foo %}')
        self.put_resource('1', 'static.html', 30, 'hello')
        self.put_resource('1', 'static.html:fr', 20, 'bonjour')
        self.put_resource('1', 'data', 10, '\xff\xfe\xfd\xfc')

        self.fetched = []
        self.compiled = []
        self.rendered = []

        self.resource_get_by_key_name_original = Resource.get_by_key_name
        self.template_init_original = django.template.Template.__init__
        self.template_render_original = django.template.Template.render

        test_self = self

        @staticmethod
        def resource_get_by_key_name_for_test(
                key_name, parent, *args, **kwargs):
            test_self.fetched.append(key_name)  # track datastore fetches
            return test_self.resource_get_by_key_name_original(
                key_name, parent, *args, **kwargs)

        def template_init_for_test(
                self, content, origin, name, *args, **kwargs):
            test_self.compiled.append(name)  # track template compilations
            return test_self.template_init_original(
                self, content, origin, name, *args, **kwargs)

        def template_render_for_test(self, context, *args, **kwargs):
            test_self.rendered.append(self.name)  # track render calls
            return test_self.template_render_original(
                self, context, *args, **kwargs)

        Resource.get_by_key_name = resource_get_by_key_name_for_test
        django.template.Template.__init__ = template_init_for_test
        django.template.Template.render = template_render_for_test
    def setUp(self):
        utils.set_utcnow_for_test(0)
        resources.clear_caches()
        resources.set_active_bundle_name("1")

        self.temp_entity_keys = []
        self.put_resource("1", "base.html.template", 50, "hi! {% block foo %}{% endblock foo %}")
        self.put_resource("1", "base.html.template:es", 40, "\xc2\xa1hola! {% block foo %}{% endblock foo %}")
        self.put_resource(
            "1",
            "page.html.template",
            30,
            '{% extends "base.html.template" %} ' "{% block foo %}default{% endblock foo %}",
        )
        self.put_resource(
            "1",
            "page.html.template:fr",
            20,
            '{% extends "base.html.template" %} ' "{% block foo %}fran\xc3\xa7ais{% endblock foo %}",
        )
        self.put_resource("1", "static.html", 30, "hello")
        self.put_resource("1", "static.html:fr", 20, "bonjour")
        self.put_resource("1", "data", 10, "\xff\xfe\xfd\xfc")

        self.fetched = []
        self.compiled = []
        self.rendered = []

        self.resource_get_by_key_name_original = Resource.get_by_key_name
        self.template_init_original = django.template.Template.__init__
        self.template_render_original = django.template.Template.render

        test_self = self

        @staticmethod
        def resource_get_by_key_name_for_test(key_name, parent):
            test_self.fetched.append(key_name)  # track datastore fetches
            return test_self.resource_get_by_key_name_original(key_name, parent)

        def template_init_for_test(self, content, origin, name):
            test_self.compiled.append(name)  # track template compilations
            return test_self.template_init_original(self, content, origin, name)

        def template_render_for_test(self, context):
            test_self.rendered.append(self.name)  # track render calls
            return test_self.template_render_original(self, context)

        Resource.get_by_key_name = resource_get_by_key_name_for_test
        django.template.Template.__init__ = template_init_for_test
        django.template.Template.render = template_render_for_test
    def initialize(self, request, response):
        webapp.RequestHandler.initialize(self, request, response)

        # If requested, set the clock before doing anything clock-related.
        # Only works on localhost for testing.  Specify ?utcnow=1293840000 to
        # set the clock to 2011-01-01, or ?utcnow=real to revert to real time.
        utcnow = request.get('utcnow')
        if request.remote_addr == '127.0.0.1' and utcnow:
            if utcnow == 'real':
                utils.set_utcnow_for_test(None)
            else:
                utils.set_utcnow_for_test(float(utcnow))

        # If requested, flush caches before we touch anything that uses them.
        flush_caches(*request.get('flush', '').split(','))

        # check for legacy redirect:
        # TODO(lschumacher|kpy): remove support for legacy URLS Q1 2012.
        if legacy_redirect.do_redirect(self):
            # stub out get/head to prevent failures.
            self.get = self.head = lambda *args: None
            return legacy_redirect.redirect(self)

        # Gather commonly used information into self.env.
        self.env = setup_env(request)

        # Force a redirect if requested, except where https is not supported:
        # - for cron jobs
        # - for task queue jobs
        # - in development
        if (self.env.force_https and self.env.scheme == 'http'
            and not is_cron_task(self.request)
            and not is_task_queue_task(self.request)
            and not is_development_server()):
            self.redirect(self.env.url.replace('http:', 'https:'))

        # Activate the selected language.
        response.headers['Content-Language'] = self.env.lang
        response.headers['Set-Cookie'] = \
            'django_language=%s; path=/' % self.env.lang
        django_setup.activate(self.env.lang)

        # Activate the appropriate resource bundle.
        resources.set_active_bundle_name(self.env.resource_bundle)
Example #8
0
    def initialize(self, request, response):
        webapp.RequestHandler.initialize(self, request, response)

        # If requested, set the clock before doing anything clock-related.
        # Only works on localhost for testing.  Specify ?utcnow=1293840000 to
        # set the clock to 2011-01-01, or ?utcnow=real to revert to real time.
        utcnow = request.get('utcnow')
        if request.remote_addr == '127.0.0.1' and utcnow:
            if utcnow == 'real':
                utils.set_utcnow_for_test(None)
            else:
                utils.set_utcnow_for_test(float(utcnow))

        # If requested, flush caches before we touch anything that uses them.
        flush_caches(*request.get('flush', '').split(','))

        # check for legacy redirect:
        # TODO(lschumacher|kpy): remove support for legacy URLS Q1 2012.
        if legacy_redirect.do_redirect(self):
            # stub out get/head to prevent failures.
            self.get = self.head = lambda *args: None
            return legacy_redirect.redirect(self)

        # Gather commonly used information into self.env.
        self.env = setup_env(request)

        # Force a redirect if requested, except where https is not supported:
        # - for cron jobs
        # - for task queue jobs
        # - in development
        if (self.env.force_https and self.env.scheme == 'http'
                and not is_cron_task(self.request)
                and not is_task_queue_task(self.request)
                and not is_development_server()):
            self.redirect(self.env.url.replace('http:', 'https:'))

        # Activate the selected language.
        response.headers['Content-Language'] = self.env.lang
        response.headers['Set-Cookie'] = \
            'django_language=%s; path=/' % self.env.lang
        django_setup.activate(self.env.lang)

        # Activate the appropriate resource bundle.
        resources.set_active_bundle_name(self.env.resource_bundle)