[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