[Zope-Checkins] SVN: Zope/branches/2.12/ - fixed test_filepath for Python 2.6

Yvo Schubbe y.2009 at wcm-solutions.de
Sun Jul 26 09:09:00 EDT 2009


Log message for revision 102308:
  - fixed test_filepath for Python 2.6
  - fixed the issue shown by test_filepath (changed the initial function __name__ to 'script')
  - adjusted test__name__

Changed:
  U   Zope/branches/2.12/doc/CHANGES.rst
  UU  Zope/branches/2.12/src/Products/PythonScripts/PythonScript.py
  UU  Zope/branches/2.12/src/Products/PythonScripts/tests/testPythonScript.py
  U   Zope/branches/2.12/src/Products/PythonScripts/tests/tscripts/filepath.ps

-=-
Modified: Zope/branches/2.12/doc/CHANGES.rst
===================================================================
--- Zope/branches/2.12/doc/CHANGES.rst	2009-07-26 12:45:25 UTC (rev 102307)
+++ Zope/branches/2.12/doc/CHANGES.rst	2009-07-26 13:08:59 UTC (rev 102308)
@@ -20,6 +20,8 @@
 Bugs Fixed
 ++++++++++
 
+- PythonScript: Fixed small Python 2.6 compatibility issue.
+
 - mkzopeinstance: Made instance scripts more suitable for egg based installs.
   If you are using a customized skel, it has to be updated.
 

Modified: Zope/branches/2.12/src/Products/PythonScripts/PythonScript.py
===================================================================
--- Zope/branches/2.12/src/Products/PythonScripts/PythonScript.py	2009-07-26 12:45:25 UTC (rev 102307)
+++ Zope/branches/2.12/src/Products/PythonScripts/PythonScript.py	2009-07-26 13:08:59 UTC (rev 102308)
@@ -7,16 +7,16 @@
 # 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
+# FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-
 """Python Scripts Product
 
 This product provides support for Script objects containing restricted
 Python code.
+
+$Id$
 """
-__version__='$Revision: 1.56 $'[11:-2]
 
 from logging import getLogger
 import marshal
@@ -273,7 +273,14 @@
         g = get_safe_globals()
         g['_getattr_'] = guarded_getattr
         g['__debug__'] = __debug__
-        g['__name__'] = None
+        # it doesn't really matter what __name__ is, *but*
+        # - we need a __name__
+        #   (see testPythonScript.TestPythonScriptGlobals.test__name__)
+        # - it should not contain a period, so we can't use the id
+        #   (see https://bugs.launchpad.net/zope2/+bug/142731/comments/4)
+        # - with Python 2.6 it should not be None
+        #   (see testPythonScript.TestPythonScriptGlobals.test_filepath)
+        g['__name__'] = 'script'
 
         l = {}
         exec code in g, l


Property changes on: Zope/branches/2.12/src/Products/PythonScripts/PythonScript.py
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
   - 1.56
Added: svn:keywords
   + Id

Modified: Zope/branches/2.12/src/Products/PythonScripts/tests/testPythonScript.py
===================================================================
--- Zope/branches/2.12/src/Products/PythonScripts/tests/testPythonScript.py	2009-07-26 12:45:25 UTC (rev 102307)
+++ Zope/branches/2.12/src/Products/PythonScripts/tests/testPythonScript.py	2009-07-26 13:08:59 UTC (rev 102308)
@@ -10,7 +10,7 @@
 # FOR A PARTICULAR PURPOSE
 #
 ##############################################################################
-import os, sys, unittest, warnings
+import os, unittest, warnings
 
 from Products.PythonScripts.PythonScript import PythonScript
 from AccessControl.SecurityManagement import newSecurityManager
@@ -295,22 +295,25 @@
 
     def test__name__(self):
         f = self._filePS('class.__name__')
-        self.assertEqual(f(), ("'foo'>", "'string'"))
+        self.assertEqual(f(), ("'script.foo'>", "'string'"))
 
-    if sys.version_info < (2, 6):
-        def test_filepath(self):
-            # This test is meant to raise a deprecation warning.
-            # It used to fail mysteriously instead.
+    def test_filepath(self):
+        # This test is meant to raise a deprecation warning.
+        # It used to fail mysteriously instead.
+        def warnMe(message):
+            warnings.warn(message, stacklevel=2)
+
+        try:
+            f = self._filePS('filepath')
             self._trap_warning_output()
-            f = self._filePS('filepath')
-            self.assertEqual(f(), [0])
+            results = f._exec({'container': warnMe}, (), {})
             self._free_warning_output()
-    else:
-        def test_filepath(self):
-            # On Python 2.6, this now raises a TypeError.
-            f = self._filePS('filepath')
-            self.assertRaises(TypeError, f)
+            warning = self._our_stderr_stream.getvalue()
+            self.failUnless('UserWarning: foo' in warning)
+        except TypeError, e:
+            self.fail(e)
 
+
 class PythonScriptInterfaceConformanceTests(unittest.TestCase):
 
     def test_class_conforms_to_IWriteLock(self):


Property changes on: Zope/branches/2.12/src/Products/PythonScripts/tests/testPythonScript.py
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
   - 1.16
Added: svn:keywords
   + Id

Modified: Zope/branches/2.12/src/Products/PythonScripts/tests/tscripts/filepath.ps
===================================================================
--- Zope/branches/2.12/src/Products/PythonScripts/tests/tscripts/filepath.ps	2009-07-26 12:45:25 UTC (rev 102307)
+++ Zope/branches/2.12/src/Products/PythonScripts/tests/tscripts/filepath.ps	2009-07-26 13:08:59 UTC (rev 102308)
@@ -1,2 +1,2 @@
-return range(1.0)
+return container('foo')
 # This test is meant to raise a deprecation warning.



More information about the Zope-Checkins mailing list