Exemple #1
0
 def process_response(self, request, response):
     "Processes all the responses marked by an X-MAGRO property"
     if 'X-MAGRO' in response:
         env = _init_magro_env()
         template = Template( response.content, env )
         response.content = template.render()
     return response
Exemple #2
0
    def testarraygroup(self):
        source = """
[ (a1),(a2) ]:
    [$value]: $value
"""

        template = Template( source )
        res = template.render( { 'a1':[1,2,3],'a2':[4,5,6] } )
        self.assertEqual( res, '123456' )
Exemple #3
0
    def testiter(self):
        source = '[iter]: $value\n'
        
        def gen(n):
            i=0
            while i<n:
                yield i+1
                i+=1

        template = Template( source )
        res = template.render( { 'iter':gen(3) } )
        self.assertEqual( res, '123' )
Exemple #4
0
    def testcompile(self):
        source = 'variable\n'

        template = Template( source )
        res = template.render( { 'variable':123 } )
        self.assertEqual( res, '123' )

        res = template.render( { 'variable':124 } )
        self.assertEqual( res, '124' )

        res = template.render()
        self.assertEqual( res, '' )
Exemple #5
0
    def testevaluationprecedence(self):
        source = """
var
def var():
    'abc'
"""
        template = Template( source )

        res = template.render( {} )
        self.assertEqual( res, 'abc' )

        res = template.render( { 'var':'123' } )
        self.assertEqual( res, '123' )
Exemple #6
0
    def testtypedefinheritanceold(self):
        source = """
someAobject
@A(): 'A'
"""
        #old style classes.
        class A(): pass
        class B(A): pass
        class C(B): pass

        context = Context({ 'someAobject': C() })
        
        template = Template( source )
        res = template.render( context )

        self.assertEqual( res, 'A' )
Exemple #7
0
    def testtypedef(self):
        source = """
someAobject
@A():
    '>' $object.name '=' $object.value '<'
"""
        class A:
            def __init__( self, name, value ):
                self.name = name
                self.value = value
        
        context = Context({ 'someAobject': A('super','duper') })

        template = Template( source )
        res = template.render( context )
        self.assertEqual( res, '>super=duper<' )
Exemple #8
0
    def testtypedefinheritanceorder(self):
        source = """
someAobject
@A(): 'A'
@B2(): 'B2'
"""

        class A(object): pass
        class B1(A): pass
        class B2(object): pass
        class C(B1,B2): pass
        class D(C): pass
        context = Context({ 'someAobject': D() })
        
        template = Template( source )
        res = template.render( context )
        
        self.assertEqual( res, 'B2' )
Exemple #9
0
def render_from_text( template_source, context=None ):
    env = _init_magro_env()
    template = Template( template_source, env )
    return template.render( context )
Exemple #10
0
 def compare(self, text, result ):
     template = Template( text, self.env )
     self.assertEqual( template.render(), result )
Exemple #11
0
    def testarrayargs(self):
        source = '[ a1, a2 ]: $value\n'

        template = Template( source )
        res = template.render( { 'a1':[1,2,3],'a2':[4,5,6] } )
        self.assertEqual( res, '123456' )
Exemple #12
0
    def testarrayarg(self):
        source = '[array]:$value\n'

        template = Template( source )
        res = template.render( { 'array':[1,2,3] } )
        self.assertEqual( res, '123' )