[Checkins] SVN: zope.site/trunk/src/zope/site/ make filerepresentation work for zope.site.folder.Folder
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Fri Jan 30 07:16:57 EST 2009
Log message for revision 95551:
make filerepresentation work for zope.site.folder.Folder
Changed:
U zope.site/trunk/src/zope/site/folder.py
A zope.site/trunk/src/zope/site/tests/folder.txt
U zope.site/trunk/src/zope/site/tests/test_folder.py
-=-
Modified: zope.site/trunk/src/zope/site/folder.py
===================================================================
--- zope.site/trunk/src/zope/site/folder.py 2009-01-30 12:01:43 UTC (rev 95550)
+++ zope.site/trunk/src/zope/site/folder.py 2009-01-30 12:16:57 UTC (rev 95551)
@@ -1,4 +1,4 @@
-from zope.interface import implements
+from zope.interface import implements, directlyProvides
from zope.site.interfaces import IFolder, IRootFolder
from zope.site.site import SiteManagerContainer
Added: zope.site/trunk/src/zope/site/tests/folder.txt
===================================================================
--- zope.site/trunk/src/zope/site/tests/folder.txt (rev 0)
+++ zope.site/trunk/src/zope/site/tests/folder.txt 2009-01-30 12:16:57 UTC (rev 95551)
@@ -0,0 +1,58 @@
+===============================
+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.
+
+ >>> from zope.site.folder import rootFolder
+ >>> from zope.container.directory import ReadDirectory
+ >>> folder = rootFolder()
+ >>> from zope.site.site import LocalSiteManager
+ >>> folder.setSiteManager(LocalSiteManager(folder))
+ >>> 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
Modified: zope.site/trunk/src/zope/site/tests/test_folder.py
===================================================================
--- zope.site/trunk/src/zope/site/tests/test_folder.py 2009-01-30 12:01:43 UTC (rev 95550)
+++ zope.site/trunk/src/zope/site/tests/test_folder.py 2009-01-30 12:16:57 UTC (rev 95551)
@@ -19,4 +19,7 @@
makeSuite(FolderTest),
DocTestSuite('zope.site.folder',
setUp=setUp, tearDown=tearDown),
+ doctest.DocFileSuite("folder.txt",
+ setUp=setUp, tearDown=tearDown,
+ optionflags=flags),
))
More information about the Checkins
mailing list