SVN: Zope/trunk/ Removed the last remaining code to support `SOFTWARE_HOME` and `ZOPE_HOME`.

Hanno Schlichting <[email protected]>
Newsgroups gmane.comp.web.zope.cvs
Message-ID <[email protected]>
Log message for revision 122084:
  Removed the last remaining code to support `SOFTWARE_HOME` and `ZOPE_HOME`.
  

Changed:
  U   Zope/trunk/doc/CHANGES.rst
  U   Zope/trunk/src/App/ApplicationManager.py
  U   Zope/trunk/src/App/Extensions.py
  U   Zope/trunk/src/App/FindHomes.py
  U   Zope/trunk/src/App/ImageFile.py
  U   Zope/trunk/src/App/config.py
  U   Zope/trunk/src/App/special_dtml.py
  U   Zope/trunk/src/App/tests/test_ApplicationManager.py
  D   Zope/trunk/src/App/tests/test_Extensions.py
  U   Zope/trunk/src/App/tests/test_setConfiguration.py
  U   Zope/trunk/src/OFS/ObjectManager.py
  U   Zope/trunk/src/Testing/ZopeTestCase/doc/ENVIRONMENT.txt
  U   Zope/trunk/src/Testing/ZopeTestCase/doc/TIMELINES.txt
  U   Zope/trunk/src/Zope2/Startup/datatypes.py

-=-
Modified: Zope/trunk/doc/CHANGES.rst
===================================================================
--- Zope/trunk/doc/CHANGES.rst	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/doc/CHANGES.rst	2011-07-03 15:19:22 UTC (rev 122084)
@@ -41,6 +41,8 @@
 Restructuring
 +++++++++++++
 
+- Removed the last remaining code to support `SOFTWARE_HOME` and `ZOPE_HOME`.
+
 - Removed ZMI controls for restarting the process, these no longer apply when
   managed as a WSGI application.
 

Modified: Zope/trunk/src/App/ApplicationManager.py
===================================================================
--- Zope/trunk/src/App/ApplicationManager.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/ApplicationManager.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -239,8 +239,6 @@
 InitializeClass(DebugManager)
 
 
-
-
 class ApplicationManager(Folder, CacheManager):
     """System management
     """
@@ -350,41 +348,6 @@
                 REQUEST['URL1'] + '/manage_workspace')
         return t
 
-    def revert_points(self):
-        return ()
-
-    def version_list(self):
-        # Return a list of currently installed products/versions
-        cfg = getConfiguration()
-        product_dir = os.path.join(cfg.softwarehome,'Products')
-        product_names = os.listdir(product_dir)
-        product_names.sort()
-        info = []
-        for product_name in product_names:
-            package_dir = os.path.join(product_dir, product_name)
-            if not os.path.isdir(package_dir):
-                continue
-            version_txt = None
-            for name in ('VERSION.TXT', 'VERSION.txt', 'version.txt'):
-                v = os.path.join(package_dir, name)
-                if os.path.exists(v):
-                    version_txt = v
-                    break
-            if version_txt is not None:
-                file = open(version_txt, 'r')
-                data = file.readline()
-                file.close()
-                info.append(data.strip())
-        return info
-
-    def getSOFTWARE_HOME(self):
-        cfg = getConfiguration()
-        return getattr(cfg, 'softwarehome', None)
-
-    def getZOPE_HOME(self):
-        cfg = getConfiguration()
-        return getattr(cfg, 'zopehome', None)
-
     def getINSTANCE_HOME(self):
         return getConfiguration().instancehome
 
@@ -406,23 +369,7 @@
                 l.append((str(type), 'Port: %s' % port))
         return l
 
-    def objectIds(self, spec=None):
-        """ this is a patch for pre-2.4 Zope installations. Such
-            installations don't have an entry for the WebDAV LockManager
-            introduced in 2.4.
-        """
 
-        meta_types = map(lambda x: x.get('meta_type', None), self._objects)
-
-        if not self.DavLocks.meta_type in meta_types:
-
-            lst = list(self._objects)
-            lst.append({'id': 'DavLocks', 
-                        'meta_type': self.DavLocks.meta_type})
-            self._objects = tuple(lst)
-
-        return Folder.objectIds(self, spec)
-
 class AltDatabaseManager(DatabaseManager, CacheManager):
     """ Database management DBTab-style
     """

Modified: Zope/trunk/src/App/Extensions.py
===================================================================
--- Zope/trunk/src/App/Extensions.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/Extensions.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -12,7 +12,7 @@
 ##############################################################################
 """Standard routines for handling extensions.
 
-Extensions currently include external methods and pluggable brains.
+Extensions currently include external methods.
 """
 import imp
 import os
@@ -90,7 +90,6 @@
         raise ValueError('The file name, %s, should be a simple file name'
                             % name)
 
-    result = None
     if checkProduct:
         dot = name.find('.')
         if dot > 0:
@@ -113,11 +112,6 @@
 
     locations = [cfg.instancehome]
 
-    softwarehome = getattr(cfg, 'softwarehome', None)
-    if softwarehome is not None:
-        zopehome = os.path.dirname(softwarehome)
-        locations.append(zopehome)
-
     for home in locations:
         found = _getPath(home, prefix, name, suffixes)
         if found is not None:
@@ -202,23 +196,3 @@
     except KeyError:
         raise NotFound("The specified object, '%s', was not found "
                        "in module, '%s'." % (name, module))
-
-class NoBrains:
-    pass
-
-
-def getBrain(module, class_name, reload=0, modules=None):
-    """ Check/load a class from an extension.
-    """
-    if not module and not class_name:
-        return NoBrains
-
-    if modules is None:
-        c=getObject(module, class_name, reload)
-    else:
-        c=getObject(module, class_name, reload, modules=modules)
-
-    if getattr(c, '__bases__', None) is None:
-        raise ValueError('%s, is not a class' % class_name)
-
-    return c

Modified: Zope/trunk/src/App/FindHomes.py
===================================================================
--- Zope/trunk/src/App/FindHomes.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/FindHomes.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -19,22 +19,6 @@
 import Products
 
 try:
-    home = os.environ['SOFTWARE_HOME']
-except KeyError:
-    pass
-else:
-    home = os.path.realpath(home)
-    __builtin__.SOFTWARE_HOME = SOFTWARE_HOME = home
-
-try:
-    zhome = os.environ['ZOPE_HOME']
-except KeyError:
-    pass
-else:
-    zhome = os.path.realpath(zhome)
-    __builtin__.ZOPE_HOME = ZOPE_HOME = zhome
-
-try:
     chome = os.environ['INSTANCE_HOME']
 except KeyError:
     import Zope2

Modified: Zope/trunk/src/App/ImageFile.py
===================================================================
--- Zope/trunk/src/App/ImageFile.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/ImageFile.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -47,7 +47,7 @@
 
     def __init__(self, path, _prefix=None):
         if _prefix is None:
-            _prefix=getattr(getConfiguration(), 'softwarehome', None) or PREFIX
+            _prefix = PREFIX
             if not os.path.isabs(path):
                 warnings.warn(NON_PREFIX_WARNING, UserWarning, 2)
         elif type(_prefix) is not type(''):

Modified: Zope/trunk/src/App/config.py
===================================================================
--- Zope/trunk/src/App/config.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/config.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -52,16 +52,6 @@
     os.environ["INSTANCE_HOME"] = cfg.instancehome
     Globals.INSTANCE_HOME = cfg.instancehome
 
-    if hasattr(cfg, 'softwarehome') and cfg.softwarehome is not None:
-        __builtin__.SOFTWARE_HOME = FindHomes.SOFTWARE_HOME = cfg.softwarehome
-        os.environ["SOFTWARE_HOME"] = cfg.softwarehome
-        Globals.SOFTWARE_HOME = cfg.softwarehome
-
-    if hasattr(cfg, 'zopehome') and cfg.zopehome is not None:
-        __builtin__.ZOPE_HOME = FindHomes.ZOPE_HOME = cfg.zopehome
-        os.environ["ZOPE_HOME"] = cfg.zopehome
-        Globals.ZOPE_HOME = cfg.zopehome
-
     Globals.DevelopmentMode = cfg.debug_mode
 
 class DefaultConfiguration:
@@ -72,10 +62,6 @@
         from App import FindHomes
         self.clienthome = FindHomes.CLIENT_HOME
         self.instancehome = FindHomes.INSTANCE_HOME
-        if hasattr(FindHomes, 'SOFTWARE_HOME'):
-            self.softwarehome = FindHomes.SOFTWARE_HOME
-        if hasattr(FindHomes, 'ZOPE_HOME'):
-            self.zopehome = FindHomes.ZOPE_HOME
         self.dbtab = None
         self.debug_mode = True
         self.enable_product_installation = False

Modified: Zope/trunk/src/App/special_dtml.py
===================================================================
--- Zope/trunk/src/App/special_dtml.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/special_dtml.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -45,7 +45,7 @@
 
     def __init__(self, name, _prefix=None, **kw):
         if _prefix is None:
-            _prefix = getattr(getConfiguration(), 'softwarehome', PREFIX)
+            _prefix = PREFIX
         elif type(_prefix) is not type(''):
             _prefix = Common.package_home(_prefix)
         args=(self, os.path.join(_prefix, name + '.dtml'))

Modified: Zope/trunk/src/App/tests/test_ApplicationManager.py
===================================================================
--- Zope/trunk/src/App/tests/test_ApplicationManager.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/tests/test_ApplicationManager.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -414,50 +414,6 @@
         am = self._makeOne()
         self.assertEqual(am.thread_get_ident(), thread.get_ident())
 
-    def test_revert_points(self):
-        am = self._makeOne()
-        self.assertEqual(list(am.revert_points()), [])
-
-    def test_version_list(self):
-        # XXX this method is too stupid to live:  returning a bare list
-        #     of versions without even tying them to the products?
-        #     and what about products living outside SOFTWARE_HOME?
-        #     Nobody calls it, either
-        import os
-        am = self._makeOne()
-        config = self._makeConfig()
-        swdir = config.softwarehome = self._makeTempdir()
-        foodir = os.path.join(swdir, 'Products', 'foo')
-        self._makeFile(foodir, 'VERSION.TXT', '1.2')
-        bardir = os.path.join(swdir, 'Products', 'bar')
-        self._makeFile(bardir, 'VERSION.txt', '3.4')
-        bazdir = os.path.join(swdir, 'Products', 'baz')
-        self._makeFile(bazdir, 'version.txt', '5.6')
-        versions = am.version_list()
-        self.assertEqual(versions, ['3.4', '5.6', '1.2'])
-
-    def test_getSOFTWARE_HOME_missing(self):
-        am = self._makeOne()
-        config = self._makeConfig()
-        self.assertEqual(am.getSOFTWARE_HOME(), None)
-
-    def test_getSOFTWARE_HOME_present(self):
-        am = self._makeOne()
-        config = self._makeConfig()
-        swdir = config.softwarehome = self._makeTempdir()
-        self.assertEqual(am.getSOFTWARE_HOME(), swdir)
-
-    def test_getZOPE_HOME_missing(self):
-        am = self._makeOne()
-        config = self._makeConfig()
-        self.assertEqual(am.getZOPE_HOME(), None)
-
-    def test_getZOPE_HOME_present(self):
-        am = self._makeOne()
-        config = self._makeConfig()
-        zopedir = config.zopehome = self._makeTempdir()
-        self.assertEqual(am.getZOPE_HOME(), zopedir)
-
     def test_getINSTANCE_HOME(self):
         am = self._makeOne()
         config = self._makeConfig()

Deleted: Zope/trunk/src/App/tests/test_Extensions.py
===================================================================
--- Zope/trunk/src/App/tests/test_Extensions.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/tests/test_Extensions.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -1,425 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2010 Zope Foundation and Contributors.
-#
-# 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
-#
-##############################################################################
-""" Unit tests for App.Extensions module
-"""
-import unittest
-
-
-class FuncCodeTests(unittest.TestCase):
-
-    def _getTargetClass(self):
-        from App.Extensions import FuncCode
-        return FuncCode
-
-    def _makeOne(self, f, im=0):
-        return self._getTargetClass()(f, im)
-
-    def test_ctor_not_method_no_args(self):
-        def f():
-            pass
-        fc = self._makeOne(f)
-        self.assertEqual(fc.co_varnames, ())
-        self.assertEqual(fc.co_argcount, 0)
-
-    def test_ctor_not_method_w_args(self):
-        def f(a, b):
-            pass
-        fc = self._makeOne(f)
-        self.assertEqual(fc.co_varnames, ('a', 'b'))
-        self.assertEqual(fc.co_argcount, 2)
-
-    def test_ctor_w_method_no_args(self):
-        def f(self):
-            pass
-        fc = self._makeOne(f, im=1)
-        self.assertEqual(fc.co_varnames, ())
-        self.assertEqual(fc.co_argcount, 0)
-
-    def test_ctor_w_method_w_args(self):
-        def f(self, a, b):
-            pass
-        fc = self._makeOne(f, im=1)
-        self.assertEqual(fc.co_varnames, ('a', 'b'))
-        self.assertEqual(fc.co_argcount, 2)
-
-    def test___cmp___None(self):
-        def f(self):
-            pass
-        fc = self._makeOne(f, im=1)
-        self.assertTrue(cmp(fc, None) > 0)
-
-    def test___cmp___non_FuncCode(self):
-        def f(self):
-            pass
-        fc = self._makeOne(f, im=1)
-        self.assertTrue(cmp(fc, object()) > 0)
-
-    def test___cmp___w_FuncCode_same_args(self):
-        def f(self, a, b):
-            pass
-        def g(self, a, b):
-            pass
-        fc = self._makeOne(f, im=1)
-        fc2 = self._makeOne(g, im=1)
-        self.assertTrue(cmp(fc, fc2) == 0)
-
-    def test___cmp___w_FuncCode_different_args(self):
-        def f(self):
-            pass
-        def g(self, a, b):
-            pass
-        fc = self._makeOne(f, im=1)
-        fc2 = self._makeOne(g, im=1)
-        self.assertTrue(cmp(fc, fc2) < 0)
-
-
-class _TempdirBase:
-
-    _old_Products___path__ = None
-    _tmpdirs = ()
-    _old_sys_path = None
-    _added_path = None
-
-    def tearDown(self):
-        import shutil
-        if self._old_Products___path__ is not None:
-            import Products
-            Products.__path__ = self._old_Products___path__
-        for tmpdir in self._tmpdirs:
-            shutil.rmtree(tmpdir)
-        if self._old_sys_path is not None:
-            import sys
-            sys.path[:] = self._old_sys_path
-            for k, v in sys.modules.items():
-                if getattr(v, '__file__', '').startswith(self._added_path):
-                    del sys.modules[k]
-
-    def _makeTempdir(self):
-        import tempfile
-        tmp = tempfile.mkdtemp()
-        self._tmpdirs += (tmp,)
-        return tmp
-
-    def _makePathDir(self):
-        import sys
-        dir = self._makeTempdir()
-        self._old_sys_path = sys.path[:]
-        sys.path.insert(0, dir)
-        self._added_path = dir
-        return dir
-
-    def _makeTempExtension(self, name='foo', extname='Extensions', dir=None):
-        import os
-        if dir is None:
-            dir = self._makeTempdir()
-        if name is None:
-            extdir = os.path.join(dir, extname)
-        else:
-            extdir = os.path.join(dir, name, extname)
-        os.makedirs(extdir)
-        return extdir
-
-    def _makeTempProduct(self, name='foo', extname='Extensions'):
-        import Products
-        self._old_Products___path__ = Products.__path__[:]
-        root = self._makeTempdir()
-        pdir = self._makeTempExtension(name=name, extname=extname, dir=root)
-        Products.__path__ = (root,)
-        return pdir
-
-    def _makeFile(self, dir, name, text='#extension'):
-        import os
-        fqn = os.path.join(dir, name)
-        f = open(fqn, 'w')
-        f.write(text)
-        f.flush()
-        f.close()
-        return fqn
-
-
-class Test_getPath(_TempdirBase, unittest.TestCase):
-
-    def _callFUT(self, prefix, name, checkProduct=1, suffixes=('',), cfg=None):
-        from App.Extensions import getPath
-        return getPath(prefix, name, checkProduct, suffixes, cfg)
-
-    def _makeConfig(self, **kw):
-        class DummyConfig:
-            def __init__(self, **kw):
-                self.__dict__.update(kw)
-        return DummyConfig(**kw)
-
-    def test_name_as_path_raises(self):
-        self.assertRaises(ValueError, self._callFUT, 'Extensions', 'foo/bar')
-
-    def test_found_in_product(self):
-        instdir = self._makeTempdir()
-        swdir = self._makeTempdir()
-        cfg = self._makeConfig(instancehome=instdir,
-                               softwarehome=swdir,
-                              )
-        extdir = self._makeTempProduct()
-        ext = self._makeFile(extdir, 'extension.py')
-        path = self._callFUT('Extensions', 'foo.extension',
-                             suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, ext)
-
-    def test_not_found_in_product(self):
-        instdir = self._makeTempdir()
-        swdir = self._makeTempdir()
-        cfg = self._makeConfig(instancehome=instdir,
-                               softwarehome=swdir,
-                              )
-        extdir = self._makeTempProduct()
-        ext = self._makeFile(extdir, 'extension.py')
-        path = self._callFUT('Extensions', 'foo.other',
-                             suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, None)
-
-    def test_wo_checkProduct_skips_product(self):
-        import Products
-        self._old_Products___path__ = Products.__path__
-        del Products.__path__ # so any iteration will raise
-        instdir = self._makeTempdir()
-        instext = self._makeTempExtension(name=None, dir=instdir)
-        instfqn = self._makeFile(instext, 'extension.py')
-        swdir = self._makeTempdir()
-        swext = self._makeTempExtension(name=None, dir=swdir)
-        swfqn = self._makeFile(swext, 'extension.py')
-        cfg = self._makeConfig(instancehome=instdir,
-                               softwarehome=swdir,
-                              )
-        path = self._callFUT('Extensions', 'extension', checkProduct=0,
-                             suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, instfqn)
-
-    def test_w_cfg_extensions(self):
-        cfgdir = self._makeTempdir()
-        cfgfqn = self._makeFile(cfgdir, 'extension.py')
-        instdir = self._makeTempdir()
-        instext = self._makeTempExtension(name=None, dir=instdir)
-        instfqn = self._makeFile(instext, 'extension.py')
-        swdir = self._makeTempdir()
-        swext = self._makeTempExtension(name=None, dir=swdir)
-        swfqn = self._makeFile(swext, 'extension.py')
-        cfg = self._makeConfig(extensions=cfgdir,
-                               instancehome=instdir,
-                               softwarehome=swdir,
-                              )
-        path = self._callFUT('Extensions', 'extension', checkProduct=0,
-                             suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, cfgfqn)
-
-    def test_not_found_in_instancehome(self):
-        import os
-        instdir = self._makeTempdir()
-        zopedir = self._makeTempdir()
-        swdir = os.path.join(zopedir, 'src')
-        os.mkdir(swdir)
-        zopeext = self._makeTempExtension(name=None, dir=zopedir)
-        zopefqn = self._makeFile(zopeext, 'extension.py')
-        cfg = self._makeConfig(instancehome=instdir,
-                               softwarehome=swdir,
-                              )
-        path = self._callFUT('Extensions', 'extension',
-                             suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, zopefqn)
-
-    def test_no_swhome(self):
-        instdir = self._makeTempdir()
-        cfg = self._makeConfig(instancehome=instdir,
-                              )
-        extdir = self._makeTempProduct()
-        path = self._callFUT('Extensions', 'extension',
-                             suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, None)
-
-    def test_search_via_import_one_dot(self):
-        import os
-        instdir = self._makeTempdir()
-        cfg = self._makeConfig(instancehome=instdir,
-                              )
-        pathdir = self._makePathDir()
-        pkgdir = os.path.join(pathdir, 'somepkg')
-        os.mkdir(pkgdir)
-        self._makeFile(pkgdir, '__init__.py', '#package')
-        pkgext = self._makeTempExtension(name=None, dir=pkgdir)
-        pkgfqn = self._makeFile(pkgext, 'extension.py')
-        path = self._callFUT('Extensions', 'somepkg.extension',
-                                suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, pkgfqn)
-
-    def test_search_via_import_multiple_dots(self):
-        import os
-        instdir = self._makeTempdir()
-        cfg = self._makeConfig(instancehome=instdir,
-                              )
-        pathdir = self._makePathDir()
-        pkgdir = os.path.join(pathdir, 'somepkg')
-        os.mkdir(pkgdir)
-        self._makeFile(pkgdir, '__init__.py', '#package')
-        subpkgdir = os.path.join(pkgdir, 'subpkg')
-        os.mkdir(subpkgdir)
-        self._makeFile(subpkgdir, '__init__.py', '#subpackage')
-        subpkgext = self._makeTempExtension(name=None, dir=subpkgdir)
-        subpkgfqn = self._makeFile(subpkgext, 'extension.py')
-        path = self._callFUT('Extensions', 'somepkg.subpkg.extension',
-                                suffixes=('py',), cfg=cfg)
-        self.assertEqual(path, subpkgfqn)
-
-"""
-Index: lib/python/App/Extensions.py
-===================================================================
---- lib/python/App/Extensions.py	(revision 28473)
-+++ lib/python/App/Extensions.py	(working copy)
-@@ -87,8 +87,14 @@
-                 r = _getPath(product_dir, os.path.join(p, prefix), n, suffixes)
-                 if r is not None: return r
- 
-+        
-     import App.config
-     cfg = App.config.getConfiguration()
-+
-+    if (prefix=="Extensions") and (cfg.extensions is not None):
-+        r=_getPath(cfg.extensions, '', name, suffixes)
-+        if r is not None: return r
-+        
-     sw=os.path.dirname(os.path.dirname(cfg.softwarehome))
-     for home in (cfg.instancehome, sw):
-         r=_getPath(home, prefix, name, suffixes)
-"""
-
-class Test_getObject(_TempdirBase, unittest.TestCase):
-
-    def _callFUT(self, module, name, reload=0, modules=None):
-        from App.Extensions import getObject
-        if modules is not None:
-            return getObject(module, name, reload, modules)
-        return getObject(module, name, reload)
-
-    def test_cache_miss(self):
-        from zExceptions import NotFound
-        MODULES = {'somemodule': {}}
-        self.assertRaises(NotFound,
-                          self._callFUT, 'somemodule', 'name', modules=MODULES)
-
-    def test_cache_hit(self):
-        obj = object()
-        MODULES = {'somemodule': {'name': obj}}
-        found = self._callFUT('somemodule', 'name', modules=MODULES)
-        self.assertTrue(found is obj)
-
-    def test_no_such_module(self):
-        from zExceptions import NotFound
-        MODULES = {}
-        self.assertRaises(NotFound, self._callFUT,
-                          'nonesuch', 'name', modules=MODULES)
-        self.assertFalse('nonesuch' in MODULES)
-
-    def test_not_found_in_module(self):
-        from zExceptions import NotFound
-        MODULES = {}
-        extdir = self._makeTempProduct()
-        ext = self._makeFile(extdir, 'extension.py')
-        self.assertRaises(NotFound, self._callFUT,
-                          'foo.extension', 'name', modules=MODULES)
-        self.assertTrue('foo.extension' in MODULES)
-        self.assertFalse('named' in MODULES['foo.extension'])
-
-    def test_found_in_module(self):
-        MODULES = {}
-        extdir = self._makeTempProduct()
-        ext = self._makeFile(extdir, 'extension.py', EXTENSION_PY)
-        found = self._callFUT('foo.extension', 'named', modules=MODULES)
-        self.assertEqual(found, 'NAMED')
-        self.assertTrue('foo.extension' in MODULES)
-        self.assertEqual(MODULES['foo.extension']['named'], 'NAMED')
-
-    def test_found_in_module_pyc(self):
-        from compileall import compile_dir
-        import os
-        MODULES = {}
-        extdir = self._makeTempProduct()
-        ext = self._makeFile(extdir, 'extension.py', EXTENSION_PY)
-        compile_dir(extdir, quiet=1)
-        os.remove(ext)
-        found = self._callFUT('foo.extension', 'named', modules=MODULES)
-        self.assertEqual(found, 'NAMED')
-        self.assertTrue('foo.extension' in MODULES)
-        self.assertEqual(MODULES['foo.extension']['named'], 'NAMED')
-
-    def test_found_in_module_after_cache_miss(self):
-        cached = {}
-        MODULES = {'foo.extension': cached}
-        extdir = self._makeTempProduct()
-        ext = self._makeFile(extdir, 'extension.py', EXTENSION_PY)
-        found = self._callFUT('foo.extension', 'named', modules=MODULES)
-        self.assertEqual(found, 'NAMED')
-        self.assertEqual(cached['named'], 'NAMED')
-
-    def test_found_in_module_after_cache_hit_but_reload(self):
-        cached = {'named': 'BEFORE'}
-        MODULES = {'foo.extension': cached}
-        extdir = self._makeTempProduct()
-        ext = self._makeFile(extdir, 'extension.py', EXTENSION_PY)
-        found = self._callFUT('foo.extension', 'named', reload=1,
-                              modules=MODULES)
-        self.assertEqual(found, 'NAMED')
-        self.assertEqual(cached['named'], 'NAMED')
-
-
-class Test_getBrain(_TempdirBase, unittest.TestCase):
-
-    def _callFUT(self, module, name, reload=0, modules=None):
-        from App.Extensions import getBrain
-        if modules is not None:
-            return getBrain(module, name, reload, modules)
-        return getBrain(module, name, reload)
-
-    def test_no_module_no_class_yields_NoBrains(self):
-        from App.Extensions import NoBrains
-        self.assertTrue(self._callFUT('', '') is NoBrains)
-
-    def test_missing_name(self):
-        from App.Extensions import NoBrains
-        from zExceptions import NotFound
-        self.assertTrue(self._callFUT('', '') is NoBrains)
-        MODULES = {'somemodule': {}}
-        self.assertRaises(NotFound,
-                          self._callFUT, 'somemodule', 'name', modules=MODULES)
-
-    def test_not_a_class(self):
-        from App.Extensions import NoBrains
-        self.assertTrue(self._callFUT('', '') is NoBrains)
-        MODULES = {'somemodule': {'name': object()}}
-        self.assertRaises(ValueError,
-                          self._callFUT, 'somemodule', 'name', modules=MODULES)
-
-    def test_found_class(self):
-        from App.Extensions import NoBrains
-        self.assertTrue(self._callFUT('', '') is NoBrains)
-        MODULES = {'somemodule': {'name': self.__class__}}
-        self.assertEqual(self._callFUT('somemodule', 'name', modules=MODULES),
-                         self.__class__)
-
-EXTENSION_PY = """\
-named = 'NAMED'
-"""
-
-def test_suite():
-    return unittest.TestSuite((
-        unittest.makeSuite(FuncCodeTests),
-        unittest.makeSuite(Test_getPath),
-        unittest.makeSuite(Test_getObject),
-        unittest.makeSuite(Test_getBrain),
-    ))

Modified: Zope/trunk/src/App/tests/test_setConfiguration.py
===================================================================
--- Zope/trunk/src/App/tests/test_setConfiguration.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/App/tests/test_setConfiguration.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -26,15 +26,11 @@
         # Save away everything as we need to restore it later on
         self.clienthome = self.getconfig('clienthome')
         self.instancehome = self.getconfig('instancehome') 
-        self.softwarehome = self.getconfig('softwarehome')
-        self.zopehome = self.getconfig('zopehome')
         self.debug_mode = self.getconfig('debug_mode')
 
     def tearDown(self):
         self.setconfig(clienthome=self.clienthome,
                        instancehome=self.instancehome,
-                       softwarehome=self.softwarehome,
-                       zopehome=self.zopehome,
                        debug_mode=self.debug_mode)
 
     def getconfig(self, key):
@@ -71,28 +67,6 @@
         self.assertEqual(__builtin__.INSTANCE_HOME, 'foo')
         self.assertEqual(Globals.INSTANCE_HOME, 'foo')
 
-    def testSoftwareHomeLegacySources(self):
-        import os
-        import App.FindHomes
-        import Globals  # for data
-        import __builtin__
-        self.setconfig(softwarehome='foo')
-        self.assertEqual(os.environ.get('SOFTWARE_HOME'), 'foo')
-        self.assertEqual(App.FindHomes.SOFTWARE_HOME, 'foo')
-        self.assertEqual(__builtin__.SOFTWARE_HOME, 'foo')
-        self.assertEqual(Globals.SOFTWARE_HOME, 'foo')
-
-    def testZopeHomeLegacySources(self):
-        import os
-        import App.FindHomes
-        import Globals  # for data
-        import __builtin__
-        self.setconfig(zopehome='foo')
-        self.assertEqual(os.environ.get('ZOPE_HOME'), 'foo')
-        self.assertEqual(App.FindHomes.ZOPE_HOME, 'foo')
-        self.assertEqual(__builtin__.ZOPE_HOME, 'foo')
-        self.assertEqual(Globals.ZOPE_HOME, 'foo')
-
     def testDebugModeLegacySources(self):
         import Globals  # for data
         self.setconfig(debug_mode=True)

Modified: Zope/trunk/src/OFS/ObjectManager.py
===================================================================
--- Zope/trunk/src/OFS/ObjectManager.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/OFS/ObjectManager.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -639,9 +639,6 @@
     def _getImportPaths(self):
         cfg = getConfiguration()
         paths = []
-        zopehome = getattr(cfg, 'zopehome', None)
-        if zopehome is not None and cfg.zopehome is not None:
-            paths.append(zopehome)
         if not cfg.instancehome in paths:
             paths.append(cfg.instancehome)
         if not cfg.clienthome in paths:

Modified: Zope/trunk/src/Testing/ZopeTestCase/doc/ENVIRONMENT.txt
===================================================================
--- Zope/trunk/src/Testing/ZopeTestCase/doc/ENVIRONMENT.txt	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/Testing/ZopeTestCase/doc/ENVIRONMENT.txt	2011-07-03 15:19:22 UTC (rev 122084)
@@ -2,12 +2,11 @@
 ZTC makes the following assumptions about its environment:
 
 a) The 'ZopeTestCase' package is installed in the Zope "trunk" inside the
-   'Testing' module, which means: SOFTWARE_HOME/Testing/ZopeTestCase.
+   'Testing' module.
 
-b) A 'Products' directory exists inside SOFTWARE_HOME and INSTANCE_HOME.
+b) none
 
-c) The tests (the 'tests' subdirectories) are located either below a 
-   SOFTWARE_HOME or INSTANCE_HOME, typically in Products/MyCoolProduct/tests.
+c) none
 
 d) The somewhat weak assumption is that ZTC can walk up the directory tree from
    'tests', and find a 'Products' directory. This is how INSTANCE_HOME 
@@ -23,9 +22,8 @@
     2) INSTANCE_HOME/custom_zodb.py must be used to set up a ZODB.
 
 
-ZTC attempts to resolve this by detecting an INSTANCE_HOME for 1) but leaving
-the actual environment variable untouched so 2) works by still pointing into 
-SOFTWARE_HOME/Testing.
+ZTC attempts to resolve this by detecting an INSTANCE_HOME but leaving
+the actual environment variable untouched
 
 As soon as I allow you to set INSTANCE_HOME yourself, I lose the ability to 
 distinguish whether you mean 1) or 2) or both. 

Modified: Zope/trunk/src/Testing/ZopeTestCase/doc/TIMELINES.txt
===================================================================
--- Zope/trunk/src/Testing/ZopeTestCase/doc/TIMELINES.txt	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/Testing/ZopeTestCase/doc/TIMELINES.txt	2011-07-03 15:19:22 UTC (rev 122084)
@@ -5,7 +5,6 @@
     1. includes file framework.py
 
         1.1 locates and imports the Testing package by means of
-            - SOFTWARE_HOME environment variable
             - auto-detection
 
         1.2 locates and includes file ztc_common.py

Modified: Zope/trunk/src/Zope2/Startup/datatypes.py
===================================================================
--- Zope/trunk/src/Zope2/Startup/datatypes.py	2011-07-03 15:00:45 UTC (rev 122083)
+++ Zope/trunk/src/Zope2/Startup/datatypes.py	2011-07-03 15:19:22 UTC (rev 122084)
@@ -115,16 +115,11 @@
         return self.data
 
 # Datatype for the root configuration object
-# (adds the softwarehome and zopehome fields; default values for some
-#  computed paths, configures the dbtab)
+# (default values for some computed paths, configures the dbtab)
 
 def root_config(section):
     from ZConfig import ConfigurationError
     from ZConfig.matcher import SectionValue
-    here = os.path.dirname(os.path.abspath(__file__))
-    swhome = os.path.dirname(os.path.dirname(here))
-    section.softwarehome = swhome
-    section.zopehome = os.path.dirname(os.path.dirname(swhome))
     if section.environment is None:
         section.environment = zdaemonEnvironDict()
     if section.cgi_environment is None:

_______________________________________________
Zope-Checkins maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-checkins
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.