[Zope-Checkins] SVN: Zope/trunk/ Removed deprecated ZCML directives
from Five including the whole Five.site subpackage
Hanno Schlichting
plone at hannosch.info
Sat Apr 26 15:04:50 EDT 2008
Log message for revision 85768:
Removed deprecated ZCML directives from Five including the whole Five.site subpackage
Changed:
U Zope/trunk/doc/CHANGES.txt
U Zope/trunk/lib/python/Products/Five/TODO.txt
U Zope/trunk/lib/python/Products/Five/browser/tests/test_defaultview.py
U Zope/trunk/lib/python/Products/Five/configure.zcml
U Zope/trunk/lib/python/Products/Five/doc/directives.txt
U Zope/trunk/lib/python/Products/Five/doc/features.txt
D Zope/trunk/lib/python/Products/Five/doc/localsite.txt
U Zope/trunk/lib/python/Products/Five/doc/presentations/five_views_tutorial.mgp
U Zope/trunk/lib/python/Products/Five/fiveconfigure.py
U Zope/trunk/lib/python/Products/Five/fivedirectives.py
U Zope/trunk/lib/python/Products/Five/meta.zcml
U Zope/trunk/lib/python/Products/Five/metaconfigure.py
D Zope/trunk/lib/python/Products/Five/site/
U Zope/trunk/lib/python/Products/Five/tests/test_directives.py
U Zope/trunk/lib/python/Products/Five/tests/test_viewable.py
D Zope/trunk/lib/python/Products/Five/tests/viewable.txt
-=-
Modified: Zope/trunk/doc/CHANGES.txt
===================================================================
--- Zope/trunk/doc/CHANGES.txt 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/doc/CHANGES.txt 2008-04-26 19:04:49 UTC (rev 85768)
@@ -9,6 +9,9 @@
Restructuring
+ - Removed deprecated ZCML directives from Five including the whole
+ Five.site subpackage.
+
- Turned deprecation warnings for manage_afterAdd, manage_beforeDelete
and manage_afterClone methods into discouraged warnings. These methods
will not be removed in Zope 2.11, but stay for the foreseeable future.
Modified: Zope/trunk/lib/python/Products/Five/TODO.txt
===================================================================
--- Zope/trunk/lib/python/Products/Five/TODO.txt 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/TODO.txt 2008-04-26 19:04:49 UTC (rev 85768)
@@ -7,8 +7,6 @@
* backport r22057 from Five-1.3 branch: fix Localizer unit test problem
-* i18n domain of site/managesite.pt?
-
* i18n and translation of utilities/browser/*pt
* can we stop using zLOG and use the logging package? please?
@@ -30,16 +28,12 @@
v1.3
----
-* revisit the test_localsite/test_{get|query}NextSiteManager tests
-
* correctly treat ZCatalog.Catalog(Path)Awareness.CatalogAware w.r.t
events (efge)
v1.4
----
-- fix up locale support in Five.form/Five.formlib
-
- namedtemplate in Five.formlib?
- l10n (philikon)
Modified: Zope/trunk/lib/python/Products/Five/browser/tests/test_defaultview.py
===================================================================
--- Zope/trunk/lib/python/Products/Five/browser/tests/test_defaultview.py 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/browser/tests/test_defaultview.py 2008-04-26 19:04:49 UTC (rev 85768)
@@ -46,35 +46,9 @@
>>> uf = self.folder.acl_users
>>> uf._doAddUser('manager', 'r00t', ['Manager'], [])
- BBB This is a test of backwards comaptibility with Five 1.3/Zope
- 2.9. The deprecated directive five:defaultViewable would before
- make index.html the default view. Test that this is still the
- case. five:defaultViewable goes away in Zope 2.12, and this test
- goes then too:
+ We can specify another default view with browser:defaultView:
- >>> import warnings
- >>> showwarning = warnings.showwarning
- >>> warnings.showwarning = lambda *a, **k: None
-
>>> zcml.load_string('''
- ... <configure xmlns:five="http://namespaces.zope.org/five">
- ... <five:defaultViewable
- ... class="Products.Five.tests.testing.simplecontent.SimpleContent" />
- ... </configure>''')
- >>> print http(r'''
- ... GET /test_folder_1_/testoid HTTP/1.1
- ... Authorization: Basic manager:r00t
- ... ''')
- HTTP/1.1 200 OK
- ...
- The eagle has landed
-
- >>> warnings.showwarning = showwarning
-
- But if we want to, we can specify another default view with
- browser:defaultView:
-
- >>> zcml.load_string('''
... <configure xmlns:browser="http://namespaces.zope.org/browser">
... <browser:defaultView
... for="Products.Five.tests.testing.simplecontent.ISimpleContent"
Modified: Zope/trunk/lib/python/Products/Five/configure.zcml
===================================================================
--- Zope/trunk/lib/python/Products/Five/configure.zcml 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/configure.zcml 2008-04-26 19:04:49 UTC (rev 85768)
@@ -8,7 +8,6 @@
<include file="deprecated.zcml"/>
<include file="traversing.zcml"/>
<include package=".component" />
- <include package=".site" />
<include package=".browser" />
<include package=".form" />
<include package=".formlib" />
Modified: Zope/trunk/lib/python/Products/Five/doc/directives.txt
===================================================================
--- Zope/trunk/lib/python/Products/Five/doc/directives.txt 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/doc/directives.txt 2008-04-26 19:04:49 UTC (rev 85768)
@@ -16,11 +16,10 @@
Hook an adapter factory to an interface.
-content
--------
+class
+-----
-Declare interface and permissions on content object. Declares Zope 2
-permissions.
+Declare interface and permissions on classes. Declares Zope 2 permissions.
permission
----------
@@ -48,17 +47,6 @@
Register an interface in ZCML.
-factory
--------
-
-Register an object factory.
-
-modulealias
------------
-
-Provide a module under an alias name, e.g. for persistent backward
-compatability.
-
hook
----
@@ -134,24 +122,6 @@
Loads overriding ZCML in all products (``overrides.zcml``).
-traversable
------------
-
-This statement is now deprecated, since the functionality now is on Zope Core.
-
-Make a Zope 2 content class traversable in the Zope 3 manner using
-Five. This is used to attached views, resources and other things to
-Zope 2 objects.
-
-defaultViewable
----------------
-
-This statement is now deprecated, since the functionality now is on Zope Core.
-
-Make a Zope 2 content class use a Zope 3 default view when looking at
-it without any paths appended to it. This works then instead of
-``index_html`` in Zope 2.
-
sizable
-------
@@ -181,11 +151,3 @@
-------------
Registers Five content with Zope 2.
-
-localsite
----------
-
-Turns a class into an implementation of ``IPossibleSite`` so that its
-instances can be serve as local sites. Unless otherwise specified, a
-default implementation's methods will be used to make the class comply
-with the ``IPossibleSite`` interface.
Modified: Zope/trunk/lib/python/Products/Five/doc/features.txt
===================================================================
--- Zope/trunk/lib/python/Products/Five/doc/features.txt 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/doc/features.txt 2008-04-26 19:04:49 UTC (rev 85768)
@@ -5,13 +5,6 @@
Five features are mostly Zope 3 features, though Five has some extras,
and some limitations.
-Zope 3 interfaces
-=================
-
-Everything from the ``zope.interface`` package works. Zope 3
-interfaces are the foundation of the component architecture, and also
-the foundation of schemas.
-
ZCML
====
@@ -33,38 +26,6 @@
the ``overrides.zcml`` you can override existing views or adapters, in
this or in other products.
-Adapters
-========
-
-You can use adapters in Five, just like in Zope 3.
-
-Zope 3 views
-============
-
-Zope 3 views work in Five, including layers and skins. To make them
-work however, you need to make a Zope 2 class "traversable". This can
-be done by using the ``five:traversable`` directive in ZCML.
-
-Page templates
-==============
-
-Five before release 0.3 used to use Zope 3's page template engine, but
-in the interests of increased compatibility with Zope 2, we've
-switched to using Zope 2's. There should be no real difference to any
-code, however. We may decide to switch back to Zope 3's engine again
-eventually if we can resolve the compatibility issues.
-
-One thing to be aware of is that the page template engine runs
-completely in trusted mode, just like Python code. That is, as soon as
-the page template engine is running, no Zope 2 or Zope 3 security
-checks are made.
-
-Edit and add forms
-==================
-
-Five supports edit and add forms. Typical Zope 3 examples of these
-should work.
-
Security declarations
=====================
@@ -79,23 +40,8 @@
list of these permissions in ``permissions.zcml`` in Five. The
permission check takes place before the view is executed.
-The ``content`` directive can also be used to declare permissions on
+The ``class`` directive can also be used to declare permissions on
Zope 2 content classes. Note however that these permissions will be
ignored by views anyway, as they are trusted -- it only serves to
-protect directly exposed methods on content classes (the python
+protect directly exposed methods on content classes (the Python
scripts and the ZPublisher).
-
-Local Sites
-===========
-
-Five supports the concept of a local sites and local site managers.
-See localsite.txt_ for more information.
-
-.. _localsite.txt: localsite.html
-
-Object events
-=============
-
-Five supports sending Zope 3 object events when objects are added,
-moved, renamed, copied and deleted. The use of ``manage_afterAdd`` & co
-methods is deprecated.
Deleted: Zope/trunk/lib/python/Products/Five/doc/localsite.txt
===================================================================
--- Zope/trunk/lib/python/Products/Five/doc/localsite.txt 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/doc/localsite.txt 2008-04-26 19:04:49 UTC (rev 85768)
@@ -1,203 +0,0 @@
-Local sites in Five
-===================
-
-Intro
------
-
-Zope 3 has a concept of local sites and site managers. They allow one
-to locally override component registrations and have components and
-their configuration be persisted in the ZODB as well as managed
-through the web interface.
-
-
-Five 1.5 supports two distinct and slightly incompatible versions of
-local site support. The first one, (here known as "old" sites) was
-introduced in Five 1.3 and is based on Zope 3.2s site implementation.
-But the site implementation in Zope 3.2 was overly complicated, and
-for 3.3 it was refactored, and Five 1.5 contains support for this new
-local site support as well (known as "new" sites).
-
-For documentation of how to use local sites, see the Zope 3.3 documentation.
-This document is mostly about how the implementation of the old sites work,
-and how to migrate from Five 1.3 and 1.4.
-
-
-Migration from old sites to new sites
--------------------------------------
-
-New sites are based on Zope 3.3s new site managers and persistent
-component registries. Old sites are based on specific Five implementation
-of site managers, and keeps utilities in a folder called "utilities".
-
-They are used basically the same, but they are created differently,
-and also, when you look up a utility with getUtility or queryUtility, in
-old sites, the utility will have an acquicition context, while in the new
-sites it will not.
-
-Setting up the site
-...................
-
-The old setup of a site was done by marking the class of the site as a
-possible site with five:localsite, and then either manually through the ZMI
-or programmatically through enableLocalSiteHook(site) turn it into a site.
-
-The new setup involves calling enableSite(site) and createing and setting
-a site manager. The simplest way to do this manually is to go to the
-"components.html" view of the object you want to make a site, and press the
-"Make site" button. The easist way to do this programmatically, is to look
-up the "components.html" view on the site, and calling view.makeSite():
-
- components_view = queryMultiAdapter((self.context, self.request),
- Interface, 'components.html')
- components_view.makeSite()
-
-As any ObjectManager can be a site there is no longer any need to specially
-mark the class as being a possible site.
-
-Registering local utilities
-...........................
-
-The old usage was to get the site manager, either throgh adapting with
-IFiveUtilityRegistry(site) or by calling getSiteManager(). You could then
-register the utilities with sitemanager.registerUtility(interface, utility)
-
-The new way is to call getSiteManager().registerUtility(object, provided).
-Note that in the old way, the first parameter is the interface name, and
-the second the actual utility object, but in the new way, it is the other
-way around.
-
-Migrating the actual sites
-..........................
-
-Go to the object of the site, and add "manage_site.html" to the URL to open
-the old site management view. There you have a button
-"Migrate to Five.component". Press it to migrate the site.
-
-Experimental forwards compatibility
-...................................
-
-If you have software using the old sites, and software using the new sites,
-there is sligthly experimental support to make software expecting new sites
-to work with old sites. Nothing is promised with this, as it is largely
-untested. The best thing to do is without a doubt to convert your old site
-software and your old sites to use new sites.
-
-
-
-Old site implementation details
-===============================
-
-The rest of this document documents the details of the old site implementation.
-Everything from here on concerns only the old implementation and is of mainly
-hysterical interest.
-
-By default, Zope 3 has a global site which is configured through ZCML.
-It provides the fallback for all component look-up. Local sites are
-typically set during traversal, when the traverser encounters an
-``ISite`` object. The last encountered ``ISite`` wins. Component
-look-up will cascade through all the sites in the hierarchy and fall
-back to the global site where it can finally fail.
-
-Five also supports local sites, however by default only local
-utilities. Local adapters, such as ZODB-based views, could be
-supported with a custom implementation of the local site manager and
-local adapter registry. This is not the focus of local sites in Five,
-though.
-
-
-Turning possible sites into sites
----------------------------------
-
-Five uses the same technique as Zope 3 for determining local sites:
-sites are found during URL traversal. However, since the Zope 2
-ZPublisher doesn't emit the necessary events by default, Five needs to
-set a ``BeforeTraverse`` hook on site objects.
-
-Setting this hook needs to be done an object-per-object basis and can
-be performed through the ``manage_site.html`` browser page. This view
-operates on ``IPossibleSite`` objects (in other words, objects that
-*can* be sites but aren't yet). It sets the traversal hook on the
-object and then marks it with the ``ISite`` interface to indicate that
-it is a real site now, not just a possible site.
-
-Note that unlike the Zope 3 equivalent of this view, it does not set
-the site manager to site; it is assumed that the site already knows
-how to get its site manager.
-
-
-Custom site implementations
----------------------------
-
-Anything can be a site, there are no restrictions (sites don't have to
-be folders, for examples). Sites can also be nested. For all the
-Component Architecture cares, every object in your URL graph could be
-a site.
-
-The only requirement are two interfaces:
-
-``IPossibleSite``
-
- Objects that can potentially be turned into a site need to provide
- this interface. That requires them to have a ``setSiteManager()``
- and ``getSiteManager()`` method for setting and getting the local
- site manager of that site. The site manager is the registry that
- takes care of local component look-up.
-
-``IFiveSiteManager``
-
- This interface is a slight extension of the ``IServiceService`` or
- ``ISiteManager`` interface, respectively (the former in Zope X3
- 3.0, the latter in later versions). It defines the API of a local
- site manager that is to be used in a Five environment. The site's
- ``getSiteManager()`` method should return an object providing this
- interface.
-
-
-Five's default site manager
-----------------------------
-
-If you want to instantly make your custom class an ``IPossibleSite``
-implementation, you can use a default mix-in class from Five, e.g.::
-
- class MySite(OFS.Folder, Products.Five.site.localsite.FiveSite):
- pass
-
-This default implementation of ``IPossibleSite`` features a site
-manager implementation that knows how to register and look-up local
-utilities. It does so by adapting the site to
-``IFiveUtilityRegistry``.
-
-The default adapter for this local utility registry simply stores the
-utilities in a standard OFS Folder on called ``utilities`` on the site
-object. You probably want to exchange that simple behaviour with
-something that works better in your application. You can do so by
-plugging in your own utility registry adapter, e.g.::
-
- <adapter for=".interfaces.IMySite"
- provides="Products.Five.site.interfaces.IFiveUtilityRegistry"
- fatory=".module.MyUtilityRegistry" />
-
-All this implementation needs to do is comply with the
-``IFiveUtilityRegistry`` interface, which essentially means the
-standard utility look-up methods like ``queryUtility()``,
-``getUtilitiesFor()``, etc.
-
-
-Turning existing classes into possible sites
---------------------------------------------
-
-If you cannot or do not want to modify existing classes to mix in the
-``FiveSite`` class, you can also use a structured monkey patch via
-ZCML::
-
- <five:localsite class=".module.MyClass" />
-
-This makes ``MyClass`` an ``IPossibleSite`` and sticks ``FiveSite``'s
-``getSiteManager()`` and ``setSiteManager()`` methods on the class as
-well. You can also tell it to use a different site implementation's
-methods for the monkey patch::
-
- <five:localsite class=".module.MyClass"
- site_class=".module.MySiteImpl" />
-
-Just make sure that this class implements ``IPossibleSite``.
Modified: Zope/trunk/lib/python/Products/Five/doc/presentations/five_views_tutorial.mgp
===================================================================
--- Zope/trunk/lib/python/Products/Five/doc/presentations/five_views_tutorial.mgp 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/doc/presentations/five_views_tutorial.mgp 2008-04-26 19:04:49 UTC (rev 85768)
@@ -242,7 +242,7 @@
What if we traverse to the object itself?
- Use five:defaultViewable and browser:defaultView
+ Use browser:defaultView
%page
@@ -259,8 +259,6 @@
%size 4, fore "blue"
- <five:defaultViewable class=".democontent.DemoContent" />
-
<browser:defaultView
for=".democontent.IDemoContent"
name="someview.html" />
@@ -270,8 +268,6 @@
Conclusions
- This works much the same way as Zope 3 does too
+ This works the same way as Zope 3 does too
Can supplement existing view systems in Zope 2
-
- Five specific code is mostly isolated in five:traversable and five:defaultViewable
\ No newline at end of file
Modified: Zope/trunk/lib/python/Products/Five/fiveconfigure.py
===================================================================
--- Zope/trunk/lib/python/Products/Five/fiveconfigure.py 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/fiveconfigure.py 2008-04-26 19:04:49 UTC (rev 85768)
@@ -105,22 +105,6 @@
interface)
)
-# BBB 2006/05/01 -- to be removed after 12 months
-def traversable(_context, class_):
- warnings.warn("The five:traversable statement is no longer needed "
- "and will be removed in Zope 2.12.",
- DeprecationWarning, 2)
-
-# BBB 2006/05/01 -- to be removed after 12 months
-def defaultViewable(_context, class_):
- warnings.warn("The five:defaultViewable statement is no longer "
- "needed and will be removed in Zope 2.12. \n If you rely "
- "on it to make 'index.html' the default view, replace it "
- "with <browser:defaultView name='index.html' />",
- DeprecationWarning, 2)
- from Products.Five.bbb import IBrowserDefault
- implements(_context, class_, (IBrowserDefault,))
-
def createZope2Bridge(zope2, package, name):
# Map a Zope 2 interface into a Zope3 interface, seated within 'package'
# as 'name'.
Modified: Zope/trunk/lib/python/Products/Five/fivedirectives.py
===================================================================
--- Zope/trunk/lib/python/Products/Five/fivedirectives.py 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/fivedirectives.py 2008-04-26 19:04:49 UTC (rev 85768)
@@ -36,30 +36,6 @@
value_type=GlobalObject()
)
-# BBB 2006/05/01 -- to be removed after 12 months
-class ITraversableDirective(Interface):
- """Make instances of class traversable publically.
-
- This can be used to browse to pages, resources, etc.
-
- Traversal can be controlled by registering an ITraverser adapter.
- """
- class_ = GlobalObject(
- title=u"Class",
- required=True
- )
-
-# BBB 2006/05/01 -- to be removed after 12 months
-class IDefaultViewableDirective(Interface):
- """Make instances of class viewable publically.
-
- The default view is looked up using a IBrowserDefault adapter.
- """
- class_ = GlobalObject(
- title=u"Class",
- required=True
- )
-
class ISizableDirective(Interface):
"""Make instances of class send events.
"""
Modified: Zope/trunk/lib/python/Products/Five/meta.zcml
===================================================================
--- Zope/trunk/lib/python/Products/Five/meta.zcml 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/meta.zcml 2008-04-26 19:04:49 UTC (rev 85768)
@@ -6,10 +6,6 @@
<include package="zope.security" file="meta.zcml" />
<include package="zope.i18n" file="meta.zcml" />
- <!-- BBB 2006/02/24, to be removed after 12 months -->
- <include package="zope.modulealias" file="meta.zcml" />
-
- <include package=".site" file="meta.zcml" />
<include package=".browser" file="meta.zcml" />
<include package=".form" file="meta.zcml" />
@@ -21,13 +17,6 @@
handler="zope.app.component.metaconfigure.view"
/>
- <!-- BBB 2006/02/24, to be removed after 12 months -->
- <meta:directive
- name="factory"
- schema="zope.app.component.metadirectives.IFactoryDirective"
- handler="zope.app.component.metaconfigure.factory"
- />
-
<meta:complexDirective
name="class"
schema="zope.app.component.metadirectives.IClassDirective"
@@ -51,30 +40,6 @@
</meta:complexDirective>
- <!-- BBB 2006/02/24, to be removed after 12 months -->
- <meta:complexDirective
- name="content"
- schema="zope.app.component.metadirectives.IClassDirective"
- handler=".metaconfigure.ContentDirective"
- >
-
- <meta:subdirective
- name="implements"
- schema="zope.app.component.metadirectives.IImplementsSubdirective"
- />
-
- <meta:subdirective
- name="require"
- schema="zope.app.component.metadirectives.IRequireSubdirective"
- />
-
- <meta:subdirective
- name="allow"
- schema="zope.app.component.metadirectives.IAllowSubdirective"
- />
-
- </meta:complexDirective>
-
<meta:directive
name="securityPolicy"
schema="zope.security.zcml.ISecurityPolicyDirective"
@@ -106,18 +71,6 @@
/>
<meta:directive
- name="defaultViewable"
- schema=".fivedirectives.IDefaultViewableDirective"
- handler=".fiveconfigure.defaultViewable"
- />
-
- <meta:directive
- name="traversable"
- schema=".fivedirectives.ITraversableDirective"
- handler=".fiveconfigure.traversable"
- />
-
- <meta:directive
name="containerEvents"
schema=".fivedirectives.IContainerEventsDirective"
handler=".eventconfigure.containerEvents"
Modified: Zope/trunk/lib/python/Products/Five/metaconfigure.py
===================================================================
--- Zope/trunk/lib/python/Products/Five/metaconfigure.py 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/metaconfigure.py 2008-04-26 19:04:49 UTC (rev 85768)
@@ -44,13 +44,3 @@
callable = initializeClass,
args = (self.__class,)
)
-
-# BBB 2006/02/24, to be removed after 12 months
-class ContentDirective(contentdirective.ClassDirective):
-
- def __init__(self, _context, class_):
- warnings.warn_explicit(
- "The 'content' alias for the 'class' directive has been "
- "deprecated and will be removed in Zope 2.12.\n",
- DeprecationWarning, _context.info.file, _context.info.line)
- super(ContentDirective, self).__init__(_context, class_)
Modified: Zope/trunk/lib/python/Products/Five/tests/test_directives.py
===================================================================
--- Zope/trunk/lib/python/Products/Five/tests/test_directives.py 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/tests/test_directives.py 2008-04-26 19:04:49 UTC (rev 85768)
@@ -73,51 +73,7 @@
>>> cleanUp()
"""
-def test_content_deprecation():
- """
- Test deprecated content directive
- There was a bug in the content directive deprecation code
- which caused all code that use this directive break.
- So we test this to make sure it works. If the content
- directive will have been removed, this test can be removed
- entirely as well.
-
- First, we load the configuration file:
-
- >>> import Products.Five.tests
- >>> from Products.Five import zcml
- >>> zcml.load_config('meta.zcml', Products.Five)
- >>> zcml.load_config('directives.zcml', Products.Five.tests)
-
- Use the <content> directives: this gives a deprecation
- warning but should otherwise be all right. (We embed the block
- to suppress the deprecation warning...)
-
- >>> import warnings
- >>> warnings.showwarning, _savewarning = lambda *args, **kw: None, warnings.showwarning
- >>> zcml.load_string('''
- ... <configure xmlns="http://namespaces.zope.org/zope">
- ... <content class="Products.Five.tests.classes.One">
- ... <implements interface="Products.Five.tests.classes.IOne" />
- ... </content>
- ... </configure>
- ... ''')
-
- Check that they are all right.
-
- >>> from Products.Five.tests.classes import One, Two, IOne, ITwo
- >>> IOne.implementedBy(One)
- True
-
- Clean up adapter registry and others:
-
- >>> warnings.showwarning = _savewarning
- >>> from zope.testing.cleanup import cleanUp
- >>> cleanUp()
- """
-
-
def test_suite():
from Testing.ZopeTestCase import ZopeDocTestSuite
return ZopeDocTestSuite()
Modified: Zope/trunk/lib/python/Products/Five/tests/test_viewable.py
===================================================================
--- Zope/trunk/lib/python/Products/Five/tests/test_viewable.py 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/tests/test_viewable.py 2008-04-26 19:04:49 UTC (rev 85768)
@@ -91,8 +91,6 @@
from Testing.ZopeTestCase import FunctionalDocFileSuite
return unittest.TestSuite((
DocTestSuite(),
- FunctionalDocFileSuite('viewable.txt',
- package="Products.Five.tests",),
))
if __name__ == '__main__':
Deleted: Zope/trunk/lib/python/Products/Five/tests/viewable.txt
===================================================================
--- Zope/trunk/lib/python/Products/Five/tests/viewable.txt 2008-04-26 17:46:46 UTC (rev 85767)
+++ Zope/trunk/lib/python/Products/Five/tests/viewable.txt 2008-04-26 19:04:49 UTC (rev 85768)
@@ -1,132 +0,0 @@
-Testing defaultViewable
-=======================
-
- >>> import Products.Five
- >>> from Products.Five import zcml
- >>> zcml.load_config('configure.zcml', package=Products.Five)
-
-PROPFIND without defaultViewable
---------------------------------
-
- >>> print http(r"""
- ... PROPFIND /test_folder_1_ HTTP/1.1
- ... Authorization: Basic test_user_1_:secret
- ... Content-Length: 250
- ... Content-Type: application/xml
- ... Depth: 1
- ...
- ... <?xml version="1.0" encoding="utf-8"?>
- ... <propfind xmlns="DAV:"><prop>
- ... <getlastmodified xmlns="DAV:"/>
- ... <creationdate xmlns="DAV:"/>
- ... <resourcetype xmlns="DAV:"/>
- ... <getcontenttype xmlns="DAV:"/>
- ... <getcontentlength xmlns="DAV:"/>
- ... </prop></propfind>
- ... """, handle_errors=False)
- HTTP/1.1 207 Multi-Status
- Connection: close
- Content-Length: ...
- Content-Location: http://localhost/test_folder_1_/
- Content-Type: text/xml; charset="utf-8"
- Date: ...
- <BLANKLINE>
- <?xml version="1.0" encoding="utf-8"?>
- <d:multistatus xmlns:d="DAV:">
- <d:response>
- <d:href>/test_folder_1_/</d:href>
- <d:propstat>
- <d:prop>
- <n:getlastmodified xmlns:n="DAV:">...
- <n:creationdate xmlns:n="DAV:">...
- <n:resourcetype xmlns:n="DAV:"><n:collection/></n:resourcetype>
- <n:getcontenttype xmlns:n="DAV:"></n:getcontenttype>
- <n:getcontentlength xmlns:n="DAV:"></n:getcontentlength>
- </d:prop>
- <d:status>HTTP/1.1 200 OK</d:status>
- </d:propstat>
- </d:response>
- <d:response>
- <d:href>/test_folder_1_/acl_users</d:href>
- <d:propstat>
- <d:prop>
- <n:getlastmodified xmlns:n="DAV:">...
- <n:creationdate xmlns:n="DAV:">...
- <n:resourcetype xmlns:n="DAV:"></n:resourcetype>
- <n:getcontenttype xmlns:n="DAV:"></n:getcontenttype>
- <n:getcontentlength xmlns:n="DAV:"></n:getcontentlength>
- </d:prop>
- <d:status>HTTP/1.1 200 OK</d:status>
- </d:propstat>
- </d:response>
- </d:multistatus>
-
-PROPFIND with defaultViewable
------------------------------
-
-Now make the class default viewable:
-
- >>> #from Products.Five.fiveconfigure import classDefaultViewable
- >>> #from OFS.Folder import Folder
- >>> #classDefaultViewable(Folder)
-
-And try it again:
-
- >>> print http(r"""
- ... PROPFIND /test_folder_1_ HTTP/1.1
- ... Authorization: Basic test_user_1_:secret
- ... Content-Length: 250
- ... Content-Type: application/xml
- ... Depth: 1
- ...
- ... <?xml version="1.0" encoding="utf-8"?>
- ... <propfind xmlns="DAV:"><prop>
- ... <getlastmodified xmlns="DAV:"/>
- ... <creationdate xmlns="DAV:"/>
- ... <resourcetype xmlns="DAV:"/>
- ... <getcontenttype xmlns="DAV:"/>
- ... <getcontentlength xmlns="DAV:"/>
- ... </prop></propfind>
- ... """, handle_errors=False)
- HTTP/1.1 207 Multi-Status
- Connection: close
- Content-Length: ...
- Content-Location: http://localhost/test_folder_1_/
- Content-Type: text/xml; charset="utf-8"
- Date: ...
- <BLANKLINE>
- <?xml version="1.0" encoding="utf-8"?>
- <d:multistatus xmlns:d="DAV:">
- <d:response>
- <d:href>/test_folder_1_/</d:href>
- <d:propstat>
- <d:prop>
- <n:getlastmodified xmlns:n="DAV:">...
- <n:creationdate xmlns:n="DAV:">...
- <n:resourcetype xmlns:n="DAV:"><n:collection/></n:resourcetype>
- <n:getcontenttype xmlns:n="DAV:"></n:getcontenttype>
- <n:getcontentlength xmlns:n="DAV:"></n:getcontentlength>
- </d:prop>
- <d:status>HTTP/1.1 200 OK</d:status>
- </d:propstat>
- </d:response>
- <d:response>
- <d:href>/test_folder_1_/acl_users</d:href>
- <d:propstat>
- <d:prop>
- <n:getlastmodified xmlns:n="DAV:">...
- <n:creationdate xmlns:n="DAV:">...
- <n:resourcetype xmlns:n="DAV:"></n:resourcetype>
- <n:getcontenttype xmlns:n="DAV:"></n:getcontenttype>
- <n:getcontentlength xmlns:n="DAV:"></n:getcontentlength>
- </d:prop>
- <d:status>HTTP/1.1 200 OK</d:status>
- </d:propstat>
- </d:response>
- </d:multistatus>
-
-Clean up
---------
-
- >>> from zope.app.testing.placelesssetup import tearDown
- >>> tearDown()
More information about the Zope-Checkins
mailing list