[Zope-Checkins] SVN: Zope/branches/2.12/ Made the version information show up again, based on pkg_resources distribution information instead of the no longer existing version.txt.
Hanno Schlichting
hannosch at hannosch.eu
Sat Aug 8 09:25:33 EDT 2009
Log message for revision 102575:
Made the version information show up again, based on pkg_resources distribution information instead of the no longer existing version.txt.
Changed:
U Zope/branches/2.12/doc/CHANGES.rst
D Zope/branches/2.12/src/App/tests/test_version_txt.py
U Zope/branches/2.12/src/App/version_txt.py
-=-
Modified: Zope/branches/2.12/doc/CHANGES.rst
===================================================================
--- Zope/branches/2.12/doc/CHANGES.rst 2009-08-08 12:24:26 UTC (rev 102574)
+++ Zope/branches/2.12/doc/CHANGES.rst 2009-08-08 13:25:33 UTC (rev 102575)
@@ -8,7 +8,13 @@
after Zope 2.12.0 b4 (unreleased)
---------------------------------
+Bugs Fixed
+++++++++++
+- Made the version information show up again, based on pkg_resources
+ distribution information instead of the no longer existing version.txt.
+
+
Zope 2.12.0 b4 (2008/08/06)
---------------------------------
Deleted: Zope/branches/2.12/src/App/tests/test_version_txt.py
===================================================================
--- Zope/branches/2.12/src/App/tests/test_version_txt.py 2009-08-08 12:24:26 UTC (rev 102574)
+++ Zope/branches/2.12/src/App/tests/test_version_txt.py 2009-08-08 13:25:33 UTC (rev 102575)
@@ -1,70 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2003 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# 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.
-#
-##############################################################################
-"""Tests of the version number extraction.
-
-$Id$
-"""
-import unittest
-
-class VersionTextTestCase(unittest.TestCase):
-
- def setUp(self):
- self._resetModuleGlobals()
-
- def tearDown(self):
- 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):
- 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):
- import os
- from App import version_txt
- version_txt._filename = 'NONESUCHFILESHOULDEXIST'
- self.failIf(os.path.exists(version_txt._get_filename()))
- self.assertEqual(version_txt.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(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(getZopeVersion(), (2, 6, 1, 'b', 2))
-
-
-def test_suite():
- return unittest.makeSuite(VersionTextTestCase)
-
-if __name__ == "__main__":
- unittest.main(defaultTest="test_suite")
Modified: Zope/branches/2.12/src/App/version_txt.py
===================================================================
--- Zope/branches/2.12/src/App/version_txt.py 2009-08-08 12:24:26 UTC (rev 102574)
+++ Zope/branches/2.12/src/App/version_txt.py 2009-08-08 13:25:33 UTC (rev 102575)
@@ -14,58 +14,41 @@
$id$
"""
-import os
import re
import sys
-_location = None
-_filename = 'version.txt'
+import pkg_resources
-_version_file = None
_version_string = None
_zope_version = None
-def _get_filename():
- global _location
- if _version_file is not None:
- return _version_file
- if _location is None:
- import Zope2
- _location = os.path.dirname(Zope2.__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 = _get_filename()
+ dist = pkg_resources.get_distribution('Zope2')
+
expr = re.compile(
- r'(?P<product>[A-Za-z0-9]+) +(?P<major>[0-9]+)'
- '\.(?P<minor>[0-9]+)\.(?P<micro>[0-9]+)'
+ r'(?P<major>[0-9]+)\.(?P<minor>[0-9]+)\.(?P<micro>[0-9]+)'
'(?P<status>[A-Za-z]+)?(?P<release>[0-9]+)?')
- try:
- s = open(fn).read().strip()
- except IOError:
- ss = 'unreleased version'
- _zope_version = (-1, -1, -1, '', -1)
- else:
- ss = re.sub("\(.*?\)\?","",s)
- dict = expr.match(s).groupdict()
- _zope_version = (
- int(dict.get('major') or -1),
- int(dict.get('minor') or -1),
- int(dict.get('micro') or -1),
- dict.get('status') or '',
- int(dict.get('release') or -1),
- )
- _version_string = "%s, %s" % (ss, pyver)
+ dict = expr.match(dist.version).groupdict()
+ _zope_version = (
+ int(dict.get('major') or -1),
+ int(dict.get('minor') or -1),
+ int(dict.get('micro') or -1),
+ dict.get('status') or '',
+ int(dict.get('release') or -1),
+ )
+ _version_string = "%s, %s" % (dist.version, pyver)
+
def version_txt():
_prep_version_data()
return '(%s)' % _version_string
+
def getZopeVersion():
"""
Format of zope_version tuple:
More information about the Zope-Checkins
mailing list