def test_it(self): from pyramid.config import Configurator from pyramid_jinja2 import includeme from webtest import TestApp import os here = os.path.abspath(os.path.dirname(__file__)) templates_dir = os.path.join(here, 'templates') def myview(request): return {} config1 = Configurator(settings={ 'jinja2.directories': os.path.join(templates_dir, 'foo')}) includeme(config1) config1.add_view(view=myview, renderer='mytemplate.jinja2') config2 = Configurator(settings={ 'jinja2.directories': os.path.join(templates_dir, 'bar')}) includeme(config2) config2.add_view(view=myview, renderer='mytemplate.jinja2') self.assertNotEqual(config1.registry.settings, config2.registry.settings) app1 = config1.make_wsgi_app() testapp = TestApp(app1) self.assertEqual(testapp.get('/').body, bytes_('foo')) app2 = config2.make_wsgi_app() testapp = TestApp(app2) self.assertEqual(testapp.get('/').body, bytes_('bar'))
def test_it_relative(self): from pyramid.config import Configurator from pyramid_jinja2 import includeme from webtest import TestApp def myview(request): return {} config = Configurator(settings={'jinja2.directories': 'templates'}) includeme(config) config.add_view(view=myview, name='baz1', renderer='baz1/mytemplate.jinja2') config.add_view(view=myview, name='baz2', renderer='baz2/mytemplate.jinja2') app1 = config.make_wsgi_app() testapp = TestApp(app1) self.assertEqual(testapp.get('/baz1').body, bytes_('baz1\nbaz1 body')) self.assertEqual(testapp.get('/baz2').body, bytes_('baz2\nbaz2 body'))
def test_it_relative_to_template(self): from pyramid.config import Configurator from pyramid_jinja2 import includeme from webtest import TestApp def myview(request): return {} config = Configurator(settings={'jinja2.directories': 'templates'}) includeme(config) config.add_view(view=myview, name='baz1', renderer='baz1/mytemplate.jinja2') config.add_view(view=myview, name='baz2', renderer='baz2/mytemplate.jinja2') app1 = config.make_wsgi_app() testapp = TestApp(app1) self.assertEqual(testapp.get('/baz1').body, bytes_('baz1\nbaz1 body')) self.assertEqual(testapp.get('/baz2').body, bytes_('baz2\nbaz2 body'))
def test_delay_init(self): from pyramid_jinja2 import FileInfo, TemplateRenderingError class MyFileInfo(FileInfo): filename = 'foo.jinja2' def __init__(self, data): self.data = data FileInfo.__init__(self, self.filename) def open_if_exists(self, fname): return StringIO(self.data) def getmtime(self, fname): return 1 mi = MyFileInfo(text_('nothing good here, move along')) mi._delay_init() self.assertEqual(mi._contents, mi.data) if not PY3: mi = MyFileInfo(bytes_('nothing good her\xe9, move along')) self.assertRaises(TemplateRenderingError, mi._delay_init)