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):
version_txt._version_string = None
version_txt._zope_version = None
def writeVersion(self, s):
def _writeVersion(self, s):
import os
import tempfile
from App import version_txt
......@@ -46,19 +46,20 @@ class VersionTextTestCase(unittest.TestCase):
os.close(f)
def test_without_version_txt(self):
import os
from App import version_txt
from App.version_txt import getZopeVersion
version_txt._filename = ''
self.assertEqual(getZopeVersion(), (-1, -1, -1, '', -1))
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._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._writeVersion("Zope 2.6.1b2 (source release, python 2.1, linux2)")
self.assertEqual(getZopeVersion(), (2, 6, 1, 'b', 2))
......
......@@ -17,9 +17,8 @@ $id$
import os
import re
import sys
import Zope2
_location = os.path.dirname(Zope2.__file__)
_location = None
_filename = 'version.txt'
_version_file = None
......@@ -27,8 +26,12 @@ _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():
......
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