[Checkins] SVN: zope.app.folder/trunk/src/zope/app/folder/ add bbb imports for things moved to zope.container and zope.site

Jan-Wijbrand Kolman janwijbrand at gmail.com
Fri Jan 30 07:26:14 EST 2009


Log message for revision 95552:
  add bbb imports for things moved to zope.container and zope.site

Changed:
  U   zope.app.folder/trunk/src/zope/app/folder/filerepresentation.py
  D   zope.app.folder/trunk/src/zope/app/folder/filerepresentation.txt
  A   zope.app.folder/trunk/src/zope/app/folder/folder.py
  U   zope.app.folder/trunk/src/zope/app/folder/interfaces.py
  D   zope.app.folder/trunk/src/zope/app/folder/tests.py

-=-
Modified: zope.app.folder/trunk/src/zope/app/folder/filerepresentation.py
===================================================================
--- zope.app.folder/trunk/src/zope/app/folder/filerepresentation.py	2009-01-30 12:16:57 UTC (rev 95551)
+++ zope.app.folder/trunk/src/zope/app/folder/filerepresentation.py	2009-01-30 12:26:13 UTC (rev 95552)
@@ -11,64 +11,10 @@
 # FOR A PARTICULAR PURPOSE.
 # 
 ##############################################################################
-"""Filesystem representation support.
-
-$Id$
 """
-__docformat__ = 'restructuredtext'
+BBB This module moved to zope.container.directory
+"""
 
-from zope.app.component.interfaces import ISite
-
-MARKER = object()
-
-
-class RootDirectoryFactory(object):
-
-    def __init__(self, context):
-        pass
-
-    def __call__(self, name):
-        return Folder()
-
-
-class ReadDirectory(object):
-    """Adapter to provide a file-system rendition of folders."""
-
-    def __init__(self, context):
-        self.context = context
-
-    def keys(self):
-        keys = self.context.keys()
-        if ISite.providedBy(self.context):
-            return list(keys) + ['++etc++site']
-        return keys
-
-    def get(self, key, default=None):
-        if key == '++etc++site' and ISite.providedBy(self.context):
-            return self.context.getSiteManager()
-        return self.context.get(key, default)
-
-    def __iter__(self):
-        return iter(self.keys())
-
-    def __getitem__(self, key):
-        v = self.get(key, MARKER)
-        if v is MARKER:
-            raise KeyError(key)
-        return v
-
-    def values(self):
-        return map(self.get, self.keys())
-
-    def __len__(self):
-        l = len(self.context)
-        if ISite.providedBy(self.context):
-            l += 1
-        return l
-
-    def items(self):
-        get = self.get
-        return [(key, get(key)) for key in self.keys()]
-
-    def __contains__(self, key):
-        return self.get(key) is not None
+# BBB
+from zope.container.directoty import (
+    MARKER, RootDirectoryFactory, ReadDirectory)

Deleted: zope.app.folder/trunk/src/zope/app/folder/filerepresentation.txt
===================================================================
--- zope.app.folder/trunk/src/zope/app/folder/filerepresentation.txt	2009-01-30 12:16:57 UTC (rev 95551)
+++ zope.app.folder/trunk/src/zope/app/folder/filerepresentation.txt	2009-01-30 12:26:13 UTC (rev 95552)
@@ -1,87 +0,0 @@
-===============================
-File representation for folders
-===============================
-
-Folders can be represented in file-system-like protocols (e.g. FTP). An
-adapter abstracts some internals away and adds support for accessing the
-'++etc++site' folder from those protocols.
-
-  >>> folder = getRootFolder()
-  >>> from zope.app.folder.filerepresentation import ReadDirectory
-  >>> fs_folder = ReadDirectory(folder)
-
-As the root folder is a site, the ++etc++site object appears:
-
-  >>> fs_folder.keys()
-  ['++etc++site']
-  >>> fs_folder.get('++etc++site')
-  <LocalSiteManager ++etc++site>
-  >>> fs_folder['++etc++site']
-  <LocalSiteManager ++etc++site>
-  >>> list(fs_folder.__iter__())
-  ['++etc++site']
-  >>> fs_folder.values()
-  [<LocalSiteManager ++etc++site>]
-  >>> len(fs_folder)
-  1
-  >>> fs_folder.items()
-  [('++etc++site', <LocalSiteManager ++etc++site>)]
-  >>> '++etc++site' in fs_folder
-  True
-
-Let's add another folder to see how a non-site folder behaves:
-
-  >>> from zope.app.folder.folder import Folder
-  >>> folder['test'] = Folder()
-
-The site folder now contains the new folder:
-
-  >>> fs_folder.keys()
-  [u'test', '++etc++site']
-  >>> fs_folder.get('test')
-  <zope.app.folder.folder.Folder object at 0x...>
-  >>> fs_folder['test']
-  <zope.app.folder.folder.Folder object at 0x...>
-  >>> list(fs_folder.__iter__())
-  [u'test', '++etc++site']
-  >>> fs_folder.values()
-  [<zope.app.folder.folder.Folder object at 0x...>, <LocalSiteManager ++etc++site>]
-  >>> len(fs_folder)
-  2
-  >>> fs_folder.items()
-  [(u'test', <zope.app.folder.folder.Folder object at 0x...>),
-   ('++etc++site', <LocalSiteManager ++etc++site>)]
-  >>> 'test' in fs_folder
-  True
-
-The new folder isn't a site manager and doesn't have any entries:
-
-  >>> fs_folder2 = ReadDirectory(folder['test'])
-  >>> list(fs_folder2.keys())
-  []
-  >>> fs_folder2.get('test', )
-  >>> fs_folder2['test']
-  Traceback (most recent call last):
-  KeyError: 'test'
-  >>> list(fs_folder2.__iter__())
-  []
-  >>> fs_folder2.values()
-  []
-  >>> len(fs_folder2)
-  0
-  >>> fs_folder2.items()
-  []
-  >>> 'test' in fs_folder2
-  False
-
-This is a short regression test for #728: we get a KeyError when trying to
-access non-existing entries:
-
-  >>> from zope.security.proxy import ProxyFactory
-  >>> from zope.security.checker import NamesChecker
-  >>> proxied_folder = ProxyFactory(fs_folder, NamesChecker(('get',)))
-  >>> proxied_fs_folder = ReadDirectory(proxied_folder)
-  >>> print proxied_fs_folder['i dont exist']
-  Traceback (most recent call last):
-  KeyError: 'i dont exist'
-

Added: zope.app.folder/trunk/src/zope/app/folder/folder.py
===================================================================
--- zope.app.folder/trunk/src/zope/app/folder/folder.py	                        (rev 0)
+++ zope.app.folder/trunk/src/zope/app/folder/folder.py	2009-01-30 12:26:13 UTC (rev 95552)
@@ -0,0 +1,19 @@
+##############################################################################
+#
+# Copyright (c) 2002 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.
+# 
+##############################################################################
+"""
+BBB This module moved to zope.site.folder
+"""
+
+# BBB
+from zope.site.folder import Folder, rootFolder, FolderSublocations

Modified: zope.app.folder/trunk/src/zope/app/folder/interfaces.py
===================================================================
--- zope.app.folder/trunk/src/zope/app/folder/interfaces.py	2009-01-30 12:16:57 UTC (rev 95551)
+++ zope.app.folder/trunk/src/zope/app/folder/interfaces.py	2009-01-30 12:26:13 UTC (rev 95552)
@@ -11,19 +11,9 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Folder interfaces
-
-$Id$
 """
-__docformat__ = 'restructuredtext'
+BBB This module moved to zope.site
+"""
 
-from zope.traversing.interfaces import IContainmentRoot
-from zope.annotation.interfaces import IAttributeAnnotatable
-from zope.container.interfaces import IContainer
-from zope.location.interfaces import IPossibleSite
-
-class IFolder(IContainer, IPossibleSite, IAttributeAnnotatable):
-    """The standard Zope Folder object interface."""
-
-class IRootFolder(IFolder, IContainmentRoot):
-    """The standard Zope root Folder object interface."""
+# BBB
+from zope.site.interfaces import IFolder, IRootFolder

Deleted: zope.app.folder/trunk/src/zope/app/folder/tests.py
===================================================================
--- zope.app.folder/trunk/src/zope/app/folder/tests.py	2009-01-30 12:16:57 UTC (rev 95551)
+++ zope.app.folder/trunk/src/zope/app/folder/tests.py	2009-01-30 12:26:13 UTC (rev 95552)
@@ -1,76 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 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.
-#
-##############################################################################
-"""Folder content component tests
-
-$Id$
-"""
-
-from unittest import TestCase, TestSuite, main, makeSuite
-
-import zope.component
-from zope.testing.doctestunit import DocTestSuite
-from zope.testing import doctest
-from zope.dublincore.interfaces import IZopeDublinCore
-from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
-
-from zope.app.testing.functional import FunctionalDocFileSuite
-from zope.app.folder.interfaces import IFolder
-from zope.app.component.testing import PlacefulSetup
-from zope.app.component.tests.test_site import BaseTestSiteManagerContainer
-from zope.container.tests.test_icontainer import BaseTestIContainer
-from zope.container.tests.test_icontainer import DefaultTestData
-from zope.app.folder.testing import AppFolderLayer
-
-
-class Test(BaseTestIContainer, BaseTestSiteManagerContainer, TestCase):
-
-    def makeTestObject(self):
-        from zope.app.folder import Folder
-        return Folder()
-
-    def makeTestData(self):
-        return DefaultTestData()
-
-    def getUnknownKey(self):
-        return '10'
-
-    def getBadKeyTypes(self):
-        return [None, ['foo'], 1, '\xf3abc']
-
-
-class FolderMetaDataTest(PlacefulSetup, TestCase):
-
-    def setUp(self):
-        PlacefulSetup.setUp(self)
-        PlacefulSetup.buildFolders(self)
-        zope.component.provideAdapter(ZDCAnnotatableAdapter, (IFolder,),
-                                      IZopeDublinCore)
-
-def test_suite():
-    from zope.testing.doctestunit import DocTestSuite
-    from zope.app.testing.placelesssetup import setUp, tearDown
-    flags = doctest.ELLIPSIS|doctest.NORMALIZE_WHITESPACE
-    filerepresentation = FunctionalDocFileSuite("filerepresentation.txt",
-                                                optionflags=flags)
-    filerepresentation.layer = AppFolderLayer
-    return TestSuite((
-        makeSuite(Test),
-        makeSuite(FolderMetaDataTest),
-        filerepresentation,
-        DocTestSuite('zope.app.folder.folder',
-                     setUp=setUp, tearDown=tearDown),
-        ))
-
-if __name__=='__main__':
-    main(defaultTest='test_suite')



More information about the Checkins mailing list