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 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"
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)