[Zope-Checkins] CVS: Products/PageTemplates/tests - testZRPythonExpr.py:1.1.2.1

Tres Seaver tseaver at palladion.com
Tue Oct 11 11:00:37 EDT 2005


Update of /cvs-repository/Products/PageTemplates/tests
In directory cvs.zope.org:/tmp/cvs-serv30274/lib/python/Products/PageTemplates/tests

Added Files:
      Tag: Zope-2_7-branch
	testZRPythonExpr.py 
Log Message:


  - Collector #1914: Harden 'call_with_ns' (in
    'Products.PageTemplates.ZRPythonExpr') against namespaces from other
    callers than page templates.


=== Added File Products/PageTemplates/tests/testZRPythonExpr.py ===
""" Unit tests for Products.PageTemplates.ZRPythonExpr

$Id
"""
import unittest

class MiscTests(unittest.TestCase):

    def test_call_with_ns_prefer_context_to_here(self):
        from Products.PageTemplates.ZRPythonExpr import call_with_ns
        context = ['context']
        here = ['here']
        request = {'request': 1}
        names = {'context' : context, 'here': here, 'request' : request}
        result = call_with_ns(lambda td: td.this, names)
        self.failUnless(result is context, result)

    def test_call_with_ns_no_context_or_here(self):
        from Products.PageTemplates.ZRPythonExpr import call_with_ns
        request = {'request': 1}
        names = {'request' : request}
        result = call_with_ns(lambda td: td.this, names)
        self.failUnless(result is None, result)

    def test_call_with_ns_no_request(self):
        from Products.PageTemplates.ZRPythonExpr import call_with_ns
        context = ['context']
        here = ['here']
        names = {'context' : context, 'here': here}

        def _find_request(td):
            ns = td._pop()              # peel off 'ns'
            instance_dict = td._pop()   # peel off InstanceDict
            request = td._pop()
            td._push(request)
            td._push(instance_dict)
            td._push(ns)
            return request

        result = call_with_ns(_find_request, names)
        self.assertEqual(result, {})
 
def test_suite():
    return unittest.makeSuite(MiscTests)

if __name__ == '__main__':
    unittest.main(defaultTest='test_suite')




More information about the Zope-Checkins mailing list