diff -Naur TurboGears2-2.3.0dev.orig/setup.py TurboGears2-2.3.0dev/setup.py
--- TurboGears2-2.3.0dev.orig/setup.py 2013-04-03 13:56:25.379430738 -0400
+++ TurboGears2-2.3.0dev/setup.py 2013-04-03 13:56:32.489528286 -0400
@@ -31,7 +31,6 @@
if py_version[0] == 2:
test_requirements.extend(['TurboKid >= 1.0.4',
'Kajiki >= 0.2.2',
- 'Chameleon < 2.0a',
'simplegeneric',
'Formencode',
'routes',
diff -Naur TurboGears2-2.3.0dev.orig/tests/test_configuration.py TurboGears2-2.3.0dev/tests/test_configuration.py
--- TurboGears2-2.3.0dev.orig/tests/test_configuration.py 2013-04-03 13:56:25.378430724 -0400
+++ TurboGears2-2.3.0dev/tests/test_configuration.py 2013-04-03 13:57:20.414184664 -0400
@@ -217,12 +217,6 @@
def test_setup_sa_auth_backend(self):
self.config.setup_sa_auth_backend()
- def test_setup_chameleon_genshi_renderer(self):
- if PY3: raise SkipTest()
-
- self.config.paths.templates = 'template_path'
- self.config.setup_chameleon_genshi_renderer()
-
def test_setup_kajiki_renderer(self):
if PY3: raise SkipTest()
@@ -910,4 +904,4 @@
conf = AppConfig(minimal=True, root_controller=RootController())
conf.package = sys.modules[__name__]
- app = conf.make_wsgi_app()
\ No newline at end of file
+ app = conf.make_wsgi_app()
diff -Naur TurboGears2-2.3.0dev.orig/tests/test_stack/__init__.py TurboGears2-2.3.0dev/tests/test_stack/__init__.py
--- TurboGears2-2.3.0dev.orig/tests/test_stack/__init__.py 2013-04-03 13:56:25.374430669 -0400
+++ TurboGears2-2.3.0dev/tests/test_stack/__init__.py 2013-04-03 13:57:38.053425778 -0400
@@ -16,7 +16,7 @@
#First we setup some base values that we know will work
self.renderers = ['genshi', 'mako', 'jinja','json']
if not PY3:
- self.renderers.extend(['chameleon_genshi', 'kajiki'])
+ self.renderers.extend(['kajiki'])
self.render_functions = tg.util.Bunch()
self.package = tests.test_stack
diff -Naur TurboGears2-2.3.0dev.orig/tests/test_stack/rendering/controllers/root.py TurboGears2-2.3.0dev/tests/test_stack/rendering/controllers/root.py
--- TurboGears2-2.3.0dev.orig/tests/test_stack/rendering/controllers/root.py 2013-04-03 13:56:25.376430697 -0400
+++ TurboGears2-2.3.0dev/tests/test_stack/rendering/controllers/root.py 2013-04-03 14:01:17.829412104 -0400
@@ -261,14 +261,6 @@
i18n.set_temporary_lang("de")
return {}
- @expose('chameleon_genshi:index.html')
- def chameleon_genshi_index(self):
- return {}
-
- @expose('chameleon_genshi:genshi_inherits.html')
- def chameleon_genshi_inherits(self):
- return {}
-
@expose('mako:mako_noop.mak')
def mako_index(self):
return {}
@@ -277,10 +269,6 @@
def mako_inherits(self):
return {}
- @expose('chameleon_genshi:tests.test_stack.rendering.templates.index')
- def chameleon_index_dotted(self):
- return {}
-
@expose('kajiki:tests.test_stack.rendering.templates.index')
def kajiki_index_dotted(self):
return {}
diff -Naur TurboGears2-2.3.0dev.orig/tests/test_stack/rendering/test_dotted_rendering.py TurboGears2-2.3.0dev/tests/test_stack/rendering/test_dotted_rendering.py
--- TurboGears2-2.3.0dev.orig/tests/test_stack/rendering/test_dotted_rendering.py 2013-04-03 13:56:25.375430683 -0400
+++ TurboGears2-2.3.0dev/tests/test_stack/rendering/test_dotted_rendering.py 2013-04-03 13:58:32.815172826 -0400
@@ -19,14 +19,6 @@
)
return app_from_config(base_config)
-def test_default_chameleon_genshi_renderer():
- if PY3: raise SkipTest()
-
- app = setup_noDB()
- resp = app.get('/chameleon_index_dotted')
- assert "Welcome" in resp, resp
- assert "TurboGears" in resp, resp
-
def test_default_kajiki_renderer():
if PY3: raise SkipTest()
diff -Naur TurboGears2-2.3.0dev.orig/tests/test_stack/rendering/test_rendering.py TurboGears2-2.3.0dev/tests/test_stack/rendering/test_rendering.py
--- TurboGears2-2.3.0dev.orig/tests/test_stack/rendering/test_rendering.py 2013-04-03 13:56:25.375430683 -0400
+++ TurboGears2-2.3.0dev/tests/test_stack/rendering/test_rendering.py 2013-04-03 13:59:11.121694138 -0400
@@ -256,38 +256,6 @@
assert "from sub-template: sub.frombottom" in resp
assert "Master template" in resp
-def test_chameleon_genshi_base():
- if PY3: raise SkipTest()
-
- app = setup_noDB()
- resp = app.get('/chameleon_genshi_index')
- assert ("<p>TurboGears 2 is rapid web application development toolkit"
- " designed to make your life easier.</p>") in resp
-
-def test_chameleon_genshi_inheritance():
- if PY3: raise SkipTest()
-
- try:
- import lxml
- except ImportError:
- # match templates need lxml, but since they don're really work anyway
- # (at least not fully compatible with Genshi), we just skip this test
- return
- app = setup_noDB()
- try:
- resp = app.get('/chameleon_genshi_inherits')
- except NameError as e:
- # known issue with chameleon.genshi 1.0
- if 'match_templates' not in str(e):
- raise
- except AttributeError as e:
- # known issue with chameleon.genshi 1.3
- if 'XPathResult' not in str(e):
- raise
- else:
- assert "Inheritance template" in resp
- assert "Master template" in resp
-
def test_jinja_autoload():
app = setup_noDB()
resp = app.get('/jinja_autoload', status=500)
diff -Naur TurboGears2-2.3.0dev.orig/tg/configuration/app_config.py TurboGears2-2.3.0dev/tg/configuration/app_config.py
--- TurboGears2-2.3.0dev.orig/tg/configuration/app_config.py 2013-04-03 13:56:25.365430546 -0400
+++ TurboGears2-2.3.0dev/tg/configuration/app_config.py 2013-04-03 14:00:22.104657686 -0400
@@ -512,25 +512,6 @@
self.render_functions.mako = render_mako
- def setup_chameleon_genshi_renderer(self): #pragma: no cover
- """Setup a renderer and loader for the chameleon.genshi engine."""
- from tg.render import RenderChameleonGenshi
-
- try:
- import chameleon.genshi.loader
- except ImportError:
- return False
-
- if config.get('use_dotted_templatenames', True):
- from tg.dottednames.chameleon_genshi_lookup \
- import ChameleonGenshiTemplateLoader as TemplateLoader
- else:
- from chameleon.genshi.loader import TemplateLoader
- loader = TemplateLoader(search_path=self.paths.templates,
- auto_reload=self.auto_reload_templates)
-
- self.render_functions.chameleon_genshi = RenderChameleonGenshi(loader)
-
def setup_genshi_renderer(self):
"""Setup a renderer and loader for Genshi templates.
diff -Naur TurboGears2-2.3.0dev.orig/tg/dottednames/chameleon_genshi_lookup.py TurboGears2-2.3.0dev/tg/dottednames/chameleon_genshi_lookup.py
--- TurboGears2-2.3.0dev.orig/tg/dottednames/chameleon_genshi_lookup.py 2013-04-03 13:56:25.369430600 -0400
+++ TurboGears2-2.3.0dev/tg/dottednames/chameleon_genshi_lookup.py 1969-12-31 19:00:00.000000000 -0500
@@ -1,29 +0,0 @@
-"""Chameleon.Genshi template loader that supports dotted names."""
-
-from chameleon.genshi.loader import TemplateLoader
-
-from tg import config
-
-
-class ChameleonGenshiTemplateLoader(TemplateLoader):
- """Chameleon.Genshi template loader supporting dotted filenames.
-
- Supports zipped applications and dotted filenames as well as path names.
-
- """
-
- template_extension = '.html'
-
- def get_dotted_filename(self, filename):
- if not filename.endswith(self.template_extension):
- finder = config['tg.app_globals'].dotted_filename_finder
- filename = finder.get_dotted_filename(
- template_name=filename,
- template_extension=self.template_extension)
- return filename
-
- def load(self, filename, format='xml'):
- """Actual loader function."""
- return TemplateLoader.load(
- self, self.get_dotted_filename(filename), format)
-
diff -Naur TurboGears2-2.3.0dev.orig/tg/render.py TurboGears2-2.3.0dev/tg/render.py
--- TurboGears2-2.3.0dev.orig/tg/render.py 2013-04-03 13:56:25.367430573 -0400
+++ TurboGears2-2.3.0dev/tg/render.py 2013-04-03 14:00:45.032968298 -0400
@@ -222,47 +222,6 @@
return render_func()
-class RenderChameleonGenshi(object): #pragma: no cover
- """Singleton that can be called as the Chameleon-Genshi render function."""
-
- format_for_content_type = {
- 'text/plain': 'text',
- 'text/css': 'text',
- 'text/html': 'xml',
- 'text/xml': 'xml',
- 'application/xml': 'xml',
- 'application/xhtml+xml': 'xml',
- 'application/atom+xml': 'xml',
- 'application/rss+xml': 'xml',
- 'application/soap+xml': 'xml',
- 'image/svg+xml': 'xml'}
-
- def __init__(self, loader):
- self.load_template = loader.load
-
- def __call__(self, template_name, template_vars, **kwargs):
- """Render the template_vars with the Chameleon-Genshi template."""
- config = tg.config._current_obj()
-
- # Gets template format from content type or from config options
- format = kwargs.get('format')
- if not format:
- format = self.format_for_content_type.get(tg.response.content_type)
- if not format:
- format = config.get('templating.chameleon.genshi.format')
- if not format:
- format = config.get('templating.genshi.method')
- if not format or format not in ('xml', 'text'):
- format = 'xml'
-
- def render_template():
- template = self.load_template(template_name, format=format)
- return Markup(template.render(**template_vars))
-
- return cached_template(template_name, render_template,
- ns_options=('doctype', 'method'), **kwargs)
-
-
class RenderGenshi(object):
"""Singleton that can be called as the Genshi render function."""