[Zope-Checkins] SVN: Zope/branches/2.10/lib/python/App/ Merged trunk r94458 and r94532 into 2.10 branch.

Stefan H. Holek stefan at epy.co.at
Mon Jan 5 07:09:47 EST 2009


Log message for revision 94534:
  Merged trunk r94458 and r94532 into 2.10 branch.
  
  Replace messy tests with cleaned-up versions from trunk.
  

Changed:
  U   Zope/branches/2.10/lib/python/App/tests/test_version_txt.py
  U   Zope/branches/2.10/lib/python/App/version_txt.py

-=-
Modified: Zope/branches/2.10/lib/python/App/tests/test_version_txt.py
===================================================================
--- Zope/branches/2.10/lib/python/App/tests/test_version_txt.py	2009-01-05 12:03:11 UTC (rev 94533)
+++ Zope/branches/2.10/lib/python/App/tests/test_version_txt.py	2009-01-05 12:09:46 UTC (rev 94534)
@@ -15,41 +15,51 @@
 
 $Id$
 """
-import os
 import unittest
-import Zope2
-import App.version_txt
 
 class VersionTextTestCase(unittest.TestCase):
 
     def setUp(self):
-        self.fn = os.path.join(os.path.dirname(Zope2.__file__), "version.txt")
-        App.version_txt._test_reset()
+        self._resetModuleGlobals()
 
     def tearDown(self):
-        try:
-            os.unlink(self.fn)
-        except OSError:
-            pass
+        import os
+        from App.version_txt import _version_file
+        if _version_file is not None:
+            os.unlink(_version_file)
+        self._resetModuleGlobals()
 
+    def _resetModuleGlobals(self):
+        from App import version_txt
+        version_txt._filename = 'version.txt'
+        version_txt._version_file = None
+        version_txt._version_string = None
+        version_txt._zope_version = None
+
     def writeVersion(self, s):
-        f = open(self.fn, 'w')
-        f.write(s)
-        f.close()
+        import os
+        import tempfile
+        from App import version_txt 
+        assert version_txt._version_file is None
+        f, version_txt._version_file = tempfile.mkstemp()
+        os.write(f, s)
+        os.close(f)
 
     def test_without_version_txt(self):
-        self.assertEqual(App.version_txt.getZopeVersion(),
-                         (-1, -1, -1, '', -1))
+        from App import version_txt
+        from App.version_txt import getZopeVersion
+        version_txt._filename = ''
+        self.assertEqual(getZopeVersion(), (-1, -1, -1, '', -1))
 
     def test_with_version_txt_final(self):
+        from App.version_txt import getZopeVersion
         self.writeVersion("Zope 2.6.1 (source release, python 2.1, linux2)")
-        self.assertEqual(App.version_txt.getZopeVersion(),
-                         (2, 6, 1, '', -1))
+        self.assertEqual(getZopeVersion(), (2, 6, 1, '', -1))
 
     def test_with_version_txt_beta(self):
+        from App.version_txt import getZopeVersion
         self.writeVersion("Zope 2.6.1b2 (source release, python 2.1, linux2)")
-        self.assertEqual(App.version_txt.getZopeVersion(),
-                         (2, 6, 1, 'b', 2))
+        self.assertEqual(getZopeVersion(), (2, 6, 1, 'b', 2))
 
 
 def test_suite():

Modified: Zope/branches/2.10/lib/python/App/version_txt.py
===================================================================
--- Zope/branches/2.10/lib/python/App/version_txt.py	2009-01-05 12:03:11 UTC (rev 94533)
+++ Zope/branches/2.10/lib/python/App/version_txt.py	2009-01-05 12:09:46 UTC (rev 94534)
@@ -14,24 +14,29 @@
 
 $id$
 """
-import os, sys, re
+import os
+import re
+import sys
 import Zope2
 
+_location = os.path.dirname(Zope2.__file__)
+_filename = 'version.txt'
+
+_version_file = None
 _version_string = None
 _zope_version = None
 
-def _test_reset():
-    # Needed for testing.
-    global _version_string, _zope_version
-    _version_string = None
-    _zope_version = None
+def _get_filename():
+    if _version_file is not None:
+        return _version_file
+    return os.path.join(_location, _filename)
 
 def _prep_version_data():
     global _version_string, _zope_version
     if _version_string is None:
         v = sys.version_info
         pyver = "python %d.%d.%d, %s" % (v[0], v[1], v[2], sys.platform)
-        fn = os.path.join(os.path.dirname(Zope2.__file__), 'version.txt')
+        fn = _get_filename()
         expr = re.compile(
             r'(?P<product>[A-Za-z0-9]+) +(?P<major>[0-9]+)'
             '\.(?P<minor>[0-9]+)\.(?P<micro>[0-9]+)'



More information about the Zope-Checkins mailing list