]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Use non-deprecated zope.interface methods in twisted bridge.
authorBen Darnell <ben@bendarnell.com>
Fri, 29 Jun 2012 06:50:23 +0000 (23:50 -0700)
committerBen Darnell <ben@bendarnell.com>
Fri, 29 Jun 2012 06:50:23 +0000 (23:50 -0700)
tornado/platform/twisted.py
tornado/test/runtests.py
tornado/test/twisted_test.py

index 044c3334173a841fa0fc3cc757f3cedcb1fc926e..6474a4788b7800bef59420d667e682fa30d8a6b9 100644 (file)
@@ -56,7 +56,7 @@ from twisted.internet.interfaces import \
 from twisted.python import failure, log
 from twisted.internet import error
 
-from zope.interface import implements
+from zope.interface import implementer
 
 import tornado
 import tornado.ioloop
@@ -66,13 +66,6 @@ from tornado.ioloop import IOLoop
 
 class TornadoDelayedCall(object):
     """DelayedCall object for Tornado."""
-    # Note that zope.interface.implements is deprecated in
-    # zope.interface 4.0, because it cannot work in python 3.  The
-    # replacement is a class decorator, which cannot work on python
-    # 2.5.  So when twisted supports python 3, we'll need to drop 2.5
-    # support on this module to make it work.
-    implements(IDelayedCall)
-
     def __init__(self, reactor, seconds, f, *args, **kw):
         self._reactor = reactor
         self._func = functools.partial(f, *args, **kw)
@@ -111,6 +104,8 @@ class TornadoDelayedCall(object):
 
     def active(self):
         return self._active
+# Fake class decorator for python 2.5 compatibility
+TornadoDelayedCall = implementer(IDelayedCall)(TornadoDelayedCall)
 
 
 class TornadoReactor(PosixReactorBase):
@@ -123,8 +118,6 @@ class TornadoReactor(PosixReactorBase):
     timed call functionality on top of `IOLoop.add_timeout` rather than
     using the implementation in `PosixReactorBase`.
     """
-    implements(IReactorTime, IReactorFDSet)
-
     def __init__(self, io_loop=None):
         if not io_loop:
             io_loop = tornado.ioloop.IOLoop.instance()
@@ -300,6 +293,7 @@ class TornadoReactor(PosixReactorBase):
         self._io_loop.start()
         if self._stopped:
             self.fireSystemEvent("shutdown")
+TornadoReactor = implementer(IReactorTime, IReactorFDSet)(TornadoReactor)
 
 
 class _TestReactor(TornadoReactor):
index 7a86366152d49006c84c6825d2ef20dbde3890a0..047d458986dab07aa754cd232fd3c9868539a428 100644 (file)
@@ -51,13 +51,6 @@ if __name__ == '__main__':
     warnings.filterwarnings("ignore", category=DeprecationWarning)
     warnings.filterwarnings("error", category=DeprecationWarning,
                             module=r"tornado\..*")
-    # tornado.platform.twisted uses a deprecated function from
-    # zope.interface in order to maintain compatibility with
-    # python 2.5
-    warnings.filterwarnings("ignore", category=DeprecationWarning,
-                            module=r"tornado\.platform\.twisted")
-    warnings.filterwarnings("ignore", category=DeprecationWarning,
-                            module=r"tornado\.test\.twisted_test")
 
     import tornado.testing
     tornado.testing.main()
index 78542a7a42bf89c27aef7c1d59714d44340f7579..327af2db7e0c0a2978e0a632d92630ae51a4e26a 100644 (file)
@@ -27,7 +27,6 @@ import unittest
 
 try:
     import fcntl
-    import twisted
     from twisted.internet.defer import Deferred
     from twisted.internet.interfaces import IReadDescriptor, IWriteDescriptor
     from twisted.internet.protocol import Protocol
@@ -36,14 +35,10 @@ try:
     from twisted.web.server import Site
     from twisted.python import log
     from tornado.platform.twisted import TornadoReactor
-    from zope.interface import implements
+    from zope.interface import implementer
+    have_twisted = True
 except ImportError:
-    fcntl = None
-    twisted = None
-    IReadDescriptor = IWriteDescriptor = None
-
-    def implements(f):
-        pass
+    have_twisted = False
 
 from tornado.httpclient import AsyncHTTPClient
 from tornado.ioloop import IOLoop
@@ -187,9 +182,7 @@ class ReactorCallInThread(ReactorTestCase):
         self._reactor.run()
 
 
-class Reader:
-    implements(IReadDescriptor)
-
+class Reader(object):
     def __init__(self, fd, callback):
         self._fd = fd
         self._callback = callback
@@ -208,11 +201,11 @@ class Reader:
 
     def doRead(self):
         self._callback(self._fd)
+if have_twisted:
+    Reader = implementer(IReadDescriptor)(Reader)
 
 
-class Writer:
-    implements(IWriteDescriptor)
-
+class Writer(object):
     def __init__(self, fd, callback):
         self._fd = fd
         self._callback = callback
@@ -231,7 +224,8 @@ class Writer:
 
     def doWrite(self):
         self._callback(self._fd)
-
+if have_twisted:
+    Writer = implementer(IWriteDescriptor)(Writer)
 
 class ReactorReaderWriterTest(ReactorTestCase):
     def _set_nonblocking(self, fd):
@@ -426,7 +420,7 @@ class CompatibilityTests(unittest.TestCase):
         self.assertEqual(response, 'Hello from tornado!')
 
 
-if twisted is None:
+if not have_twisted:
     del ReactorWhenRunningTest
     del ReactorCallLaterTest
     del ReactorTwoCallLaterTest