redo tempalteengine to not need param in init
[testsuite/python-testing-utils.git] / robotframework-onap / eteutils / TemplatingEngine.py
index 5e701a7..b47cf8e 100644 (file)
 
 
 from jinja2 import Environment, FileSystemLoader, select_autoescape
+from robot import utils
 
 
-class TemplatingEngine:
+class TemplatingEngine(object):
     """TemplateImporter is common resource for templating with strings."""
 
-    jinja_env = None
+    def __init__(self):
+        self._cache = utils.ConnectionCache('No Jinja Environments created')
 
-    def __init__(self, templates_folder):
-        self.jinja_env = Environment(
+    def create_environment(self, alias, templates_folder):
+        jinja_env = Environment(
             loader=FileSystemLoader(templates_folder),
             autoescape=select_autoescape(['html', 'xml'])
         )
+        self._cache.register(jinja_env, alias=alias)
 
-    def apply_template(self, template_location, values):
+    def apply_template(self, alias, template_location, values):
         """returns a string that is the jinja template in template_location filled in via the dictionary in values """
-        template = self.jinja_env.get_template(template_location)
+        template = self._cache.switch(alias).get_template(template_location)
         return template.render(values)