[Checkins] SVN: zope.interface/branches/regebro-python3/ 107 tests pass, 45 failures to go.

Lennart Regebro regebro at gmail.com
Tue Apr 7 16:16:49 EDT 2009


Log message for revision 98993:
  107 tests pass, 45 failures to go.
  

Changed:
  U   zope.interface/branches/regebro-python3/build_ext_3.py
  U   zope.interface/branches/regebro-python3/src/zope/interface/__init__.py
  U   zope.interface/branches/regebro-python3/src/zope/interface/declarations.py
  U   zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py
  U   zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py

-=-
Modified: zope.interface/branches/regebro-python3/build_ext_3.py
===================================================================
--- zope.interface/branches/regebro-python3/build_ext_3.py	2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/build_ext_3.py	2009-04-07 20:16:49 UTC (rev 98993)
@@ -140,6 +140,7 @@
             self.fixer_names = get_fixers_from_package('lib2to3.fixes') + \
                 get_fixers_from_package('zope.fixers')
             self.run_2to3(self.updated_files)
+            self.run_2to3(self.updated_files, doctests_only=True)
             self.run_2to3(self.possible_doctests, doctests_only=True)
     
             # Remaining base class code

Modified: zope.interface/branches/regebro-python3/src/zope/interface/__init__.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/__init__.py	2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/__init__.py	2009-04-07 20:16:49 UTC (rev 98993)
@@ -63,7 +63,7 @@
 from zope.interface.declarations import providedBy, implementedBy
 from zope.interface.declarations import classImplements, classImplementsOnly
 from zope.interface.declarations import directlyProvidedBy, directlyProvides
-from zope.interface.declarations import alsoProvides
+from zope.interface.declarations import alsoProvides, provider
 from zope.interface.declarations import implementer, implementer_only
 from zope.interface.declarations import implements, implementsOnly
 from zope.interface.declarations import classProvides, moduleProvides

Modified: zope.interface/branches/regebro-python3/src/zope/interface/declarations.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/declarations.py	2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/declarations.py	2009-04-07 20:16:49 UTC (rev 98993)
@@ -1127,13 +1127,6 @@
         >>> [i.getName() for i in C().__providedBy__]
         ['IFoo']
 
-      If classProvides is called outside of a class definition, it fails.
-
-        >>> classProvides(IFooFactory)
-        Traceback (most recent call last):
-        ...
-        TypeError: classProvides can be used only from a class definition.
-
       """
     frame = sys._getframe(1)
     locals = frame.f_locals
@@ -1156,6 +1149,16 @@
     directlyProvides(cls, *interfaces)
     return cls
 
+class provider:
+    """Class decorator version of classProvides"""
+
+    def __init__(self, *interfaces):
+        self.interfaces = interfaces
+
+    def __call__(self, ob):
+        directlyProvides(ob, *self.interfaces)
+        return ob            
+
 def moduleProvides(*interfaces):
     """Declare interfaces provided by a module
 

Modified: zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py	2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/interfaces.py	2009-04-07 20:16:49 UTC (rev 98993)
@@ -621,6 +621,8 @@
 
         after the class has been created.
         """
+    def provider(*interfaces):
+        """A class decorator version of classProvides"""
 
     def moduleProvides(*interfaces):
         """Declare interfaces provided by a module

Modified: zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py
===================================================================
--- zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py	2009-04-07 20:04:45 UTC (rev 98992)
+++ zope.interface/branches/regebro-python3/src/zope/interface/tests/test_interface.py	2009-04-07 20:16:49 UTC (rev 98993)
@@ -255,6 +255,9 @@
 
     def testIssue228(self):
         # Test for http://collector.zope.org/Zope3-dev/228
+        if sys.version[0] == '3':
+            # No old style classes in Python 3, so the test becomes moot.
+            return
         class I(Interface):
             "xxx"
         class Bad:



More information about the Checkins mailing list