[Zope-Checkins] SVN: Zope/trunk/src/Testing/ZopeTestCase/ Avoid a dependency on PythonScripts in ZopeTestCase
Hanno Schlichting
hannosch at hannosch.eu
Sat Jul 10 07:13:04 EDT 2010
Log message for revision 114502:
Avoid a dependency on PythonScripts in ZopeTestCase
Changed:
U Zope/trunk/src/Testing/ZopeTestCase/testFunctional.py
D Zope/trunk/src/Testing/ZopeTestCase/testPythonScript.py
U Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/FunctionalDocTest.txt
U Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py
-=-
Modified: Zope/trunk/src/Testing/ZopeTestCase/testFunctional.py
===================================================================
--- Zope/trunk/src/Testing/ZopeTestCase/testFunctional.py 2010-07-10 11:11:55 UTC (rev 114501)
+++ Zope/trunk/src/Testing/ZopeTestCase/testFunctional.py 2010-07-10 11:13:04 UTC (rev 114502)
@@ -20,8 +20,6 @@
from Testing import ZopeTestCase
-ZopeTestCase.installProduct('PythonScripts')
-
from Testing.ZopeTestCase import user_name
from Testing.ZopeTestCase import user_password
@@ -48,10 +46,6 @@
self.folder.addDTMLDocument('secret_html', file='secret')
self.folder.secret_html.manage_permission(view, ['Owner'])
- # A Python Script performing integer computation
- self.folder.manage_addProduct['PythonScripts'].manage_addPythonScript('script')
- self.folder.script.ZPythonScript_edit(params='a=0', body='return a+1')
-
# A method redirecting to the Zope root
redirect = '''<dtml-call "RESPONSE.redirect('%s')">''' % self.app.absolute_url()
self.folder.addDTMLMethod('redirect', file=redirect)
@@ -74,20 +68,6 @@
self.assertEqual(response.getStatus(), 200)
self.assertEqual(response.getBody(), 'index')
- def testPublishScript(self):
- response = self.publish(self.folder_path+'/script')
- self.assertEqual(response.getStatus(), 200)
- self.assertEqual(response.getBody(), '1')
-
- def testPublishScriptWithArgument(self):
- response = self.publish(self.folder_path+'/script?a:int=2')
- self.assertEqual(response.getStatus(), 200)
- self.assertEqual(response.getBody(), '3')
-
- def testServerError(self):
- response = self.publish(self.folder_path+'/script?a=2')
- self.assertEqual(response.getStatus(), 500)
-
def testUnauthorized(self):
response = self.publish(self.folder_path+'/secret_html')
self.assertEqual(response.getStatus(), 401)
@@ -191,7 +171,7 @@
self.assertEqual(getSecurityManager().getUser().getId(), user_name)
self.folder.acl_users.userFolderAddUser('barney', 'secret', [], [])
- response = self.publish(self.folder_path, basic='barney:secret')
+ self.publish(self.folder_path, basic='barney:secret')
self.assertEqual(getSecurityManager().getUser().getId(), user_name)
Deleted: Zope/trunk/src/Testing/ZopeTestCase/testPythonScript.py
===================================================================
--- Zope/trunk/src/Testing/ZopeTestCase/testPythonScript.py 2010-07-10 11:11:55 UTC (rev 114501)
+++ Zope/trunk/src/Testing/ZopeTestCase/testPythonScript.py 2010-07-10 11:13:04 UTC (rev 114502)
@@ -1,195 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2005 Zope Foundation and Contributors.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Example ZopeTestCase testing a PythonScript in the default fixture
-
-This test module demonstrates the security API of ZopeTestCase.
-
-Note that you are encouraged to call any of the following methods to
-modify the test user's security credentials:
-
- setRoles()
- setPermissions()
- login()
- logout()
-
-$Id$
-"""
-
-from Testing import ZopeTestCase
-
-ZopeTestCase.installProduct('PythonScripts')
-
-from AccessControl import Unauthorized
-from AccessControl import getSecurityManager
-
-access_permissions = ['View management screens']
-change_permissions = ['Change Python Scripts']
-
-ps_params1 = 'a=1'
-ps_body1 = 'return a'
-ps_params2 = 'a'
-ps_body2 = 'return a+1'
-
-
-class TestPythonScript(ZopeTestCase.ZopeTestCase):
- '''Tries various things allowed by the ZopeTestCase API.'''
-
- def afterSetUp(self):
- '''Adds a PythonScript object to the default fixture'''
- dispatcher = self.folder.manage_addProduct['PythonScripts']
- dispatcher.manage_addPythonScript('ps')
- self.ps = self.folder['ps']
- self.ps.ZPythonScript_edit(ps_params1, ps_body1)
-
- # Test the setup
-
- def testSetup(self):
- # The PythonScript should exist and be properly set up
- self.failUnless(hasattr(self.folder, 'ps'))
- self.assertEqual(self.ps.body(), ps_body1+'\n')
- self.assertEqual(self.ps.params(), ps_params1)
- owner = self.ps.getOwner()
- self.assertEqual(owner.getUserName(), ZopeTestCase.user_name)
-
- # Test the script(s)
-
- def testCanCallScript1WithArgument(self):
- # PythonScript should return 2
- self.assertEqual(self.ps(2), 2)
-
- def testCanCallScript1WithoutArgument(self):
- # PythonScript should return 1
- self.assertEqual(self.ps(), 1)
-
- def testCanCallScript2WithArgument(self):
- # PythonScript should return 2
- self.ps.ZPythonScript_edit(ps_params2, ps_body2)
- self.assertEqual(self.ps(1), 2)
-
- def testCannotCallScript2WithoutArgument(self):
- # PythonScript should raise a TypeError if called without arguments
- self.ps.ZPythonScript_edit(ps_params2, ps_body2)
- self.assertRaises(TypeError, self.ps, ())
-
- # Test access protection with restrictedTraverse
-
- def testCannotAccessWithoutAccessPermission(self):
- # manage_main should be protected
- self.assertRaises(Unauthorized, self.ps.restrictedTraverse, 'manage_main')
-
- def testCanAccessWithAccessPermission(self):
- # manage_main should be accessible if we have the necessary permissions
- self.setPermissions(access_permissions)
- try:
- self.ps.restrictedTraverse('manage_main')
- except Unauthorized:
- self.fail('Access to manage_main was denied')
-
- def testCannotAccessIfAnonymous(self):
- # manage_main should be protected from Anonymous
- self.logout()
- self.assertRaises(Unauthorized, self.ps.restrictedTraverse, 'manage_main')
-
- def testCanAccessIfManager(self):
- # manage_main should be accessible to Manager
- self.setRoles(['Manager'])
- try:
- self.ps.restrictedTraverse('manage_main')
- except Unauthorized:
- self.fail('Access to manage_main was denied to Manager')
-
- # Test access protection with SecurityManager
-
- def testCannotAccessWithoutAccessPermissionSecurityManager(self):
- # manage_main should be protected
- self.assertRaises(Unauthorized, getSecurityManager().validate,
- self.ps, self.ps, 'manage_main', self.ps.manage_main)
-
- def testCanAccessWithAccessPermissionSecurityManager(self):
- # manage_main should be accessible if we have the necessary permissions
- self.setPermissions(access_permissions)
- try:
- getSecurityManager().validate(self.ps, self.ps, 'manage_main', self.ps.manage_main)
- except Unauthorized:
- self.fail('Access to manage_main was denied')
-
- def testCannotAccessIfAnonymousSecurityManager(self):
- # manage_main should be protected from Anonymous
- self.logout()
- self.assertRaises(Unauthorized, getSecurityManager().validate,
- self.ps, self.ps, 'manage_main', self.ps.manage_main)
-
- def testCanAccessIfManagerSecurityManager(self):
- # manage_main should be accessible to Manager
- self.setRoles(['Manager'])
- try:
- getSecurityManager().validate(self.ps, self.ps, 'manage_main', self.ps.manage_main)
- except Unauthorized:
- self.fail('Access to manage_main was denied to Manager')
-
- # Test edit protection with restrictedTraverse
-
- def testCannotEditWithoutChangePermission(self):
- # PythonScript should not be editable
- try:
- self.ps.restrictedTraverse('ZPythonScript_edit')(ps_params2, ps_body2)
- except Unauthorized:
- pass # Test passed
- else:
- self.assertEqual(self.ps.body(), ps_body2+'\n',
- 'ZPythonScript_edit was not protected')
- self.assertEqual(self.ps.body(), ps_body1+'\n',
- 'ZPythonScript_edit was protected but no exception was raised')
-
- def testCanEditWithChangePermission(self):
- # PythonScript should be editable if we have the necessary permissions
- self.setPermissions(change_permissions)
- try:
- self.ps.restrictedTraverse('ZPythonScript_edit')(ps_params2, ps_body2)
- except Unauthorized:
- self.fail('Access to ZPythonScript_edit was denied')
- else:
- self.assertEqual(self.ps.body(), ps_body2+'\n')
- self.assertEqual(self.ps.params(), ps_params2)
-
- def testCannotEditIfAnonymous(self):
- # PythonScript should not be editable by Anonymous
- self.logout()
- try:
- self.ps.restrictedTraverse('ZPythonScript_edit')(ps_params2, ps_body2)
- except Unauthorized:
- pass # Test passed
- else:
- self.assertEqual(self.ps.body(), ps_body2+'\n',
- 'ZPythonScript_edit was not protected')
- self.assertEqual(self.ps.body(), ps_body1+'\n',
- 'ZPythonScript_edit was protected but no exception was raised')
-
- def testCanEditIfManager(self):
- # PythonScript should be editable by Manager
- self.setRoles(['Manager'])
- try:
- self.ps.restrictedTraverse('ZPythonScript_edit')(ps_params2, ps_body2)
- except Unauthorized:
- self.fail('Access to ZPythonScript_edit was denied to Manager')
- else:
- self.assertEqual(self.ps.body(), ps_body2+'\n')
- self.assertEqual(self.ps.params(), ps_params2)
-
-
-def test_suite():
- from unittest import TestSuite, makeSuite
- suite = TestSuite()
- suite.addTest(makeSuite(TestPythonScript))
- return suite
-
Modified: Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/FunctionalDocTest.txt
===================================================================
--- Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/FunctionalDocTest.txt 2010-07-10 11:11:55 UTC (rev 114501)
+++ Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/FunctionalDocTest.txt 2010-07-10 11:13:04 UTC (rev 114502)
@@ -86,36 +86,6 @@
<BLANKLINE>
index
-Test Publish Script
-
- >>> print http(r"""
- ... GET /test_folder_1_/script HTTP/1.1
- ... """, handle_errors=False)
- HTTP/1.1 200 OK
- Content-Length: 1
- Content-Type: text/plain; charset=...
- <BLANKLINE>
- 1
-
-Test Publish Script with Argument
-
- >>> print http(r"""
- ... GET /test_folder_1_/script?a:int=2 HTTP/1.1
- ... """, handle_errors=False)
- HTTP/1.1 200 OK
- Content-Length: 1
- Content-Type: text/plain; charset=...
- <BLANKLINE>
- 3
-
-Test Server Error
-
- >>> print http(r"""
- ... GET /test_folder_1_/script?a=2 HTTP/1.1
- ... """, handle_errors=True)
- HTTP/1.1 500 Internal Server Error
- ...Content-Type: text/html...TypeError...
-
Test parameter containing an additional '?'
>>> print http(r"""
Modified: Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py
===================================================================
--- Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py 2010-07-10 11:11:55 UTC (rev 114501)
+++ Zope/trunk/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py 2010-07-10 11:13:04 UTC (rev 114502)
@@ -14,11 +14,9 @@
"""
import unittest
-from Testing.ZopeTestCase import installProduct
from Testing.ZopeTestCase import FunctionalDocTestSuite
from Testing.ZopeTestCase import FunctionalDocFileSuite
-installProduct('PythonScripts')
class HTTPHeaderOutputTests(unittest.TestCase):
@@ -108,9 +106,6 @@
'''
self.folder.addDTMLDocument('index_html', file='index')
- self.folder.manage_addProduct['PythonScripts'].manage_addPythonScript('script')
- self.folder.script.ZPythonScript_edit(params='a=0', body='return a+1')
-
change_title = '''<dtml-call "manage_changeProperties(title=REQUEST.get('title'))">'''
self.folder.addDTMLMethod('change_title', file=change_title)
More information about the Zope-Checkins
mailing list