[Zope3-checkins] CVS: Zope3/src/zope/app/content - __init__.py:1.7

Nathan Yergler nathan at yergler.net
Sat Mar 20 17:10:04 EST 2004


Update of /cvs-repository/Zope3/src/zope/app/content
In directory cvs.zope.org:/tmp/cvs-serv8398/src/zope/app/content

Modified Files:
	__init__.py 
Log Message:


Refactored queryContentType to use queryType.




=== Zope3/src/zope/app/content/__init__.py 1.6 => 1.7 ===
--- Zope3/src/zope/app/content/__init__.py:1.6	Fri Mar  5 17:09:00 2004
+++ Zope3/src/zope/app/content/__init__.py	Sat Mar 20 17:10:03 2004
@@ -14,67 +14,13 @@
 """
 $Id$
 """
+
+from zope.app.interface import queryType
 from zope.app.content.interfaces import IContentType
-from zope.interface.declarations import providedBy
 
 def queryContentType(object):
-    """returns object content type
-
-    >>> from zope.interface import Interface, implements, directlyProvides
-    >>> class I(Interface):
-    ...     pass
-    >>> directlyProvides(I, IContentType)
-    >>> class C:
-    ...     implements(I)
-    >>> obj = C()
-    >>> c1_ctype = queryContentType(obj)
-    >>> c1_ctype.__name__
-    'I'
-    >>> class I1(I):
-    ...     pass
-    >>> class I2(I1):
-    ...     pass
-    >>> class I3(Interface):
-    ...     pass
-    >>> class C1:
-    ...     implements(I1)
-    >>> obj1 = C1()
-    >>> c1_ctype = queryContentType(obj1)
-    >>> c1_ctype.__name__
-    'I'
-    >>> class C2:
-    ...     implements(I2)
-    >>> obj2 = C2()
-    >>> c2_ctype = queryContentType(obj2)
-    >>> c2_ctype.__name__
-    'I'
-    >>> class C3:
-    ...     implements(I3)
-    >>> obj3 = C3()
-
-    If Interface doesn't provide IContentType, queryContentType returns None.
-    
-    >>> c3_ctype = queryContentType(obj3)
-    >>> c3_ctype
-    >>> class I4(I):
-    ...     pass
-    >>> directlyProvides(I4, IContentType)
-    >>> class C4:
-    ...     implements(I4)
-    >>> obj4 = C4()
-    >>> c4_ctype = queryContentType(obj4)
-    >>> c4_ctype.__name__
-    'I4'
-
+    """Returns the interface implemented by object which implements IContentType.
     """
-    
-    object_iro = providedBy(object).__iro__
-    for iface in object_iro:
-        if IContentType.providedBy(iface):
-            return iface
-        
-    return None
-    
-
+    return queryType(object, IContentType)
 
 




More information about the Zope3-Checkins mailing list