Commit da1df526 authored by Tres Seaver's avatar Tres Seaver

App.version_txt: avoid possible import cycle by deferring import of Zope2.

o Also, weak "without_version_txt" test to use non-existing filename, rather
  than the (existing) Zope2 directory.
parent c437f050
...@@ -36,7 +36,7 @@ class VersionTextTestCase(unittest.TestCase): ...@@ -36,7 +36,7 @@ class VersionTextTestCase(unittest.TestCase):
version_txt._version_string = None version_txt._version_string = None
version_txt._zope_version = None version_txt._zope_version = None
def writeVersion(self, s): def _writeVersion(self, s):
import os import os
import tempfile import tempfile
from App import version_txt from App import version_txt
...@@ -46,19 +46,20 @@ class VersionTextTestCase(unittest.TestCase): ...@@ -46,19 +46,20 @@ class VersionTextTestCase(unittest.TestCase):
os.close(f) os.close(f)
def test_without_version_txt(self): def test_without_version_txt(self):
import os
from App import version_txt from App import version_txt
from App.version_txt import getZopeVersion version_txt._filename = 'NONESUCHFILESHOULDEXIST'
version_txt._filename = '' self.failIf(os.path.exists(version_txt._get_filename()))
self.assertEqual(getZopeVersion(), (-1, -1, -1, '', -1)) self.assertEqual(version_txt.getZopeVersion(), (-1, -1, -1, '', -1))
def test_with_version_txt_final(self): def test_with_version_txt_final(self):
from App.version_txt import getZopeVersion from App.version_txt import getZopeVersion
self.writeVersion("Zope 2.6.1 (source release, python 2.1, linux2)") self._writeVersion("Zope 2.6.1 (source release, python 2.1, linux2)")
self.assertEqual(getZopeVersion(), (2, 6, 1, '', -1)) self.assertEqual(getZopeVersion(), (2, 6, 1, '', -1))
def test_with_version_txt_beta(self): def test_with_version_txt_beta(self):
from App.version_txt import getZopeVersion from App.version_txt import getZopeVersion
self.writeVersion("Zope 2.6.1b2 (source release, python 2.1, linux2)") self._writeVersion("Zope 2.6.1b2 (source release, python 2.1, linux2)")
self.assertEqual(getZopeVersion(), (2, 6, 1, 'b', 2)) self.assertEqual(getZopeVersion(), (2, 6, 1, 'b', 2))
......
...@@ -17,9 +17,8 @@ $id$ ...@@ -17,9 +17,8 @@ $id$
import os import os
import re import re
import sys import sys
import Zope2
_location = os.path.dirname(Zope2.__file__) _location = None
_filename = 'version.txt' _filename = 'version.txt'
_version_file = None _version_file = None
...@@ -27,8 +26,12 @@ _version_string = None ...@@ -27,8 +26,12 @@ _version_string = None
_zope_version = None _zope_version = None
def _get_filename(): def _get_filename():
global _location
if _version_file is not None: if _version_file is not None:
return _version_file return _version_file
if _location is None:
import Zope2
_location = os.path.dirname(Zope2.__file__)
return os.path.join(_location, _filename) return os.path.join(_location, _filename)
def _prep_version_data(): def _prep_version_data():
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment