[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