[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ - changed debug mode behavior (https://bugs.launchpad.net/zope-cmf/+bug/271027)

Yvo Schubbe y.2011 at wcm-solutions.de
Tue Feb 8 05:47:13 EST 2011


Log message for revision 120198:
  - changed debug mode behavior (https://bugs.launchpad.net/zope-cmf/+bug/271027)

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-08 10:45:12 UTC (rev 120197)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-08 10:47:12 UTC (rev 120198)
@@ -4,6 +4,11 @@
 2.3.0-alpha (unreleased)
 ------------------------
 
+- DirectoryView: Changed debug mode behavior.
+  No additional subdirs are registered in debug mode. If you add new subdirs,
+  you have to restart your instance.
+  (https://bugs.launchpad.net/zope-cmf/+bug/271027)
+
 - DirectoryView: Improved debug mode speed on NTFS partitions.
   The much faster non-Windows implementation is now used on Windows as well if
   non-FAT32 time stamps are detected. In rare cases that heuristic approach

Modified: Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2011-02-08 10:45:12 UTC (rev 120197)
+++ Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2011-02-08 10:47:12 UTC (rev 120198)
@@ -189,8 +189,7 @@
         changed = self._changed()
         if self.data is None or changed:
             try:
-                self.data, self.objects = self.prepareContents(registry,
-                    register_subdirs=changed)
+                self.data, self.objects = self.prepareContents(registry)
             except:
                 logger.exception("Error during prepareContents")
                 self.data = {}
@@ -198,7 +197,7 @@
 
         return self.data, self.objects
 
-    def prepareContents(self, registry, register_subdirs=0):
+    def prepareContents(self, registry):
         # Creates objects for each file.
         data = {}
         objects = []
@@ -208,15 +207,9 @@
                 continue
             entry_filepath = os.path.join(self._filepath, entry)
             if os.path.isdir(entry_filepath):
-                # Add a subdirectory only if it was previously registered,
-                # unless register_subdirs is set.
+                # Add a subdirectory only if it was previously registered.
                 entry_reg_key = '/'.join((self._reg_key, entry))
                 info = registry.getDirectoryInfo(entry_reg_key)
-                if info is None and register_subdirs:
-                    # Register unknown subdirs
-                    registry.registerDirectoryByKey(entry_filepath,
-                                                    entry_reg_key)
-                    info = registry.getDirectoryInfo(entry_reg_key)
                 if info is not None:
                     # Folders on the file system have no extension or
                     # meta_type, as a crutch to enable customizing what gets

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py	2011-02-08 10:45:12 UTC (rev 120197)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py	2011-02-08 10:47:12 UTC (rev 120198)
@@ -240,7 +240,7 @@
         getConfiguration().debug_mode = True
         self.test1path = join(self.skin_path_name,'test1.py')
         self.test2path = join(self.skin_path_name,'test2.py')
-        self.test3path = join(self.skin_path_name,'test3')
+        self.testdpath = join(self.skin_path_name,'test_directory')
 
         # initialise skins
         self._registerDirectory(self)
@@ -252,7 +252,7 @@
         self._writeFile(self.test1path, "return 'new test1'")
 
         # add a new folder
-        mkdir(self.test3path)
+        mkdir(join(self.skin_path_name,'test3'))
 
         info = _dirreg.getDirectoryInfo(self.ob.fake_skin._dirpath)
         info.reload()
@@ -270,13 +270,6 @@
         # See if an edited method exhibits its new behaviour
         self.assertEqual(self.ob.fake_skin.test1(),'new test1')
 
-    def test_NewFolder( self ):
-        # See if a new folder shows up
-        from Products.CMFCore.DirectoryView import DirectoryViewSurrogate
-        self.failUnless(isinstance(self.ob.fake_skin.test3,
-                                   DirectoryViewSurrogate))
-        self.ob.fake_skin.test3.objectIds()
-
     def test_DeleteMethod( self ):
         # Make sure a deleted method goes away
         remove(self.test2path)
@@ -303,10 +296,15 @@
         # check
         self.assertEqual(self.ob.fake_skin.test2(),'test2.3')
 
-    def test_DeleteFolder( self ):
+    def test_NewFolder(self):
+        # See if a new folder shows up
+        self.failIf(hasattr(self.ob.fake_skin, 'test3'))
+
+    def test_DeleteFolder(self):
         # Make sure a deleted folder goes away
-        rmdir(self.test3path)
-        self.failIf(hasattr(self.ob.fake_skin,'test3'))
+        self.failUnless(hasattr(self.ob.fake_skin, 'test_directory'))
+        rmdir(self.testdpath)
+        self.failIf(hasattr(self.ob.fake_skin, 'test_directory'))
 
 
 def test_suite():



More information about the checkins mailing list