Index: third_party/twisted_8_1/twisted/test/test_defgen.py |
diff --git a/third_party/twisted_8_1/twisted/test/test_defgen.py b/third_party/twisted_8_1/twisted/test/test_defgen.py |
deleted file mode 100644 |
index 399e9dbcf74def4b8ace2e228942af9cf3066ac7..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/test/test_defgen.py |
+++ /dev/null |
@@ -1,283 +0,0 @@ |
-from __future__ import generators, nested_scopes |
- |
-import sys |
- |
-from twisted.internet import reactor |
- |
-from twisted.trial import unittest, util |
- |
-from twisted.internet.defer import waitForDeferred, deferredGenerator, Deferred |
-from twisted.internet import defer |
- |
-def getThing(): |
- d = Deferred() |
- reactor.callLater(0, d.callback, "hi") |
- return d |
- |
-def getOwie(): |
- d = Deferred() |
- def CRAP(): |
- d.errback(ZeroDivisionError('OMG')) |
- reactor.callLater(0, CRAP) |
- return d |
- |
-# NOTE: most of the tests in DeferredGeneratorTests are duplicated |
-# with slightly different syntax for the InlineCallbacksTests below. |
- |
-class TerminalException(Exception): |
- pass |
- |
-class BaseDefgenTests: |
- """ |
- This class sets up a bunch of test cases which will test both |
- deferredGenerator and inlineCallbacks based generators. The subclasses |
- DeferredGeneratorTests and InlineCallbacksTests each provide the actual |
- generator implementations tested. |
- """ |
- |
- def testBasics(self): |
- """ |
- Test that a normal deferredGenerator works. Tests yielding a |
- deferred which callbacks, as well as a deferred errbacks. Also |
- ensures returning a final value works. |
- """ |
- |
- return self._genBasics().addCallback(self.assertEqual, 'WOOSH') |
- |
- def testBuggy(self): |
- """ |
- Ensure that a buggy generator properly signals a Failure |
- condition on result deferred. |
- """ |
- return self.assertFailure(self._genBuggy(), ZeroDivisionError) |
- |
- def testNothing(self): |
- """Test that a generator which never yields results in None.""" |
- |
- return self._genNothing().addCallback(self.assertEqual, None) |
- |
- def testHandledTerminalFailure(self): |
- """ |
- Create a Deferred Generator which yields a Deferred which fails and |
- handles the exception which results. Assert that the Deferred |
- Generator does not errback its Deferred. |
- """ |
- return self._genHandledTerminalFailure().addCallback(self.assertEqual, None) |
- |
- def testHandledTerminalAsyncFailure(self): |
- """ |
- Just like testHandledTerminalFailure, only with a Deferred which fires |
- asynchronously with an error. |
- """ |
- d = defer.Deferred() |
- deferredGeneratorResultDeferred = self._genHandledTerminalAsyncFailure(d) |
- d.errback(TerminalException("Handled Terminal Failure")) |
- return deferredGeneratorResultDeferred.addCallback( |
- self.assertEqual, None) |
- |
- def testStackUsage(self): |
- """ |
- Make sure we don't blow the stack when yielding immediately |
- available deferreds. |
- """ |
- return self._genStackUsage().addCallback(self.assertEqual, 0) |
- |
- def testStackUsage2(self): |
- """ |
- Make sure we don't blow the stack when yielding immediately |
- available values. |
- """ |
- return self._genStackUsage2().addCallback(self.assertEqual, 0) |
- |
- |
- |
- |
-class DeferredGeneratorTests(BaseDefgenTests, unittest.TestCase): |
- |
- # First provide all the generator impls necessary for BaseDefgenTests |
- def _genBasics(self): |
- |
- x = waitForDeferred(getThing()) |
- yield x |
- x = x.getResult() |
- |
- self.assertEquals(x, "hi") |
- |
- ow = waitForDeferred(getOwie()) |
- yield ow |
- try: |
- ow.getResult() |
- except ZeroDivisionError, e: |
- self.assertEquals(str(e), 'OMG') |
- yield "WOOSH" |
- return |
- _genBasics = deferredGenerator(_genBasics) |
- |
- def _genBuggy(self): |
- yield waitForDeferred(getThing()) |
- 1/0 |
- _genBuggy = deferredGenerator(_genBuggy) |
- |
- |
- def _genNothing(self): |
- if 0: yield 1 |
- _genNothing = deferredGenerator(_genNothing) |
- |
- def _genHandledTerminalFailure(self): |
- x = waitForDeferred(defer.fail(TerminalException("Handled Terminal Failure"))) |
- yield x |
- try: |
- x.getResult() |
- except TerminalException: |
- pass |
- _genHandledTerminalFailure = deferredGenerator(_genHandledTerminalFailure) |
- |
- |
- def _genHandledTerminalAsyncFailure(self, d): |
- x = waitForDeferred(d) |
- yield x |
- try: |
- x.getResult() |
- except TerminalException: |
- pass |
- _genHandledTerminalAsyncFailure = deferredGenerator(_genHandledTerminalAsyncFailure) |
- |
- |
- def _genStackUsage(self): |
- for x in range(5000): |
- # Test with yielding a deferred |
- x = waitForDeferred(defer.succeed(1)) |
- yield x |
- x = x.getResult() |
- yield 0 |
- _genStackUsage = deferredGenerator(_genStackUsage) |
- |
- def _genStackUsage2(self): |
- for x in range(5000): |
- # Test with yielding a random value |
- yield 1 |
- yield 0 |
- _genStackUsage2 = deferredGenerator(_genStackUsage2) |
- |
- # Tests unique to deferredGenerator |
- |
- def testDeferredYielding(self): |
- """ |
- Ensure that yielding a Deferred directly is trapped as an |
- error. |
- """ |
- # See the comment _deferGenerator about d.callback(Deferred). |
- def _genDeferred(): |
- yield getThing() |
- _genDeferred = deferredGenerator(_genDeferred) |
- |
- return self.assertFailure(_genDeferred(), TypeError) |
- |
- |
- |
-## This has to be in a string so the new yield syntax doesn't cause a |
-## syntax error in Python 2.4 and before. |
-inlineCallbacksTestsSource = ''' |
-from twisted.internet.defer import inlineCallbacks, returnValue |
- |
-class InlineCallbacksTests(BaseDefgenTests, unittest.TestCase): |
- # First provide all the generator impls necessary for BaseDefgenTests |
- |
- def _genBasics(self): |
- |
- x = yield getThing() |
- |
- self.assertEquals(x, "hi") |
- |
- try: |
- ow = yield getOwie() |
- except ZeroDivisionError, e: |
- self.assertEquals(str(e), 'OMG') |
- returnValue("WOOSH") |
- _genBasics = inlineCallbacks(_genBasics) |
- |
- def _genBuggy(self): |
- yield getThing() |
- 1/0 |
- _genBuggy = inlineCallbacks(_genBuggy) |
- |
- |
- def _genNothing(self): |
- if 0: yield 1 |
- _genNothing = inlineCallbacks(_genNothing) |
- |
- |
- def _genHandledTerminalFailure(self): |
- try: |
- x = yield defer.fail(TerminalException("Handled Terminal Failure")) |
- except TerminalException: |
- pass |
- _genHandledTerminalFailure = inlineCallbacks(_genHandledTerminalFailure) |
- |
- |
- def _genHandledTerminalAsyncFailure(self, d): |
- try: |
- x = yield d |
- except TerminalException: |
- pass |
- _genHandledTerminalAsyncFailure = inlineCallbacks( |
- _genHandledTerminalAsyncFailure) |
- |
- |
- def _genStackUsage(self): |
- for x in range(5000): |
- # Test with yielding a deferred |
- x = yield defer.succeed(1) |
- returnValue(0) |
- _genStackUsage = inlineCallbacks(_genStackUsage) |
- |
- def _genStackUsage2(self): |
- for x in range(5000): |
- # Test with yielding a random value |
- yield 1 |
- returnValue(0) |
- _genStackUsage2 = inlineCallbacks(_genStackUsage2) |
- |
- # Tests unique to inlineCallbacks |
- |
- def testYieldNonDeferrred(self): |
- """ |
- Ensure that yielding a non-deferred passes it back as the |
- result of the yield expression. |
- """ |
- def _test(): |
- x = yield 5 |
- returnValue(5) |
- _test = inlineCallbacks(_test) |
- |
- return _test().addCallback(self.assertEqual, 5) |
- |
- def testReturnNoValue(self): |
- """Ensure a standard python return results in a None result.""" |
- def _noReturn(): |
- yield 5 |
- return |
- _noReturn = inlineCallbacks(_noReturn) |
- |
- return _noReturn().addCallback(self.assertEqual, None) |
- |
- def testReturnValue(self): |
- """Ensure that returnValue works.""" |
- def _return(): |
- yield 5 |
- returnValue(6) |
- _return = inlineCallbacks(_return) |
- |
- return _return().addCallback(self.assertEqual, 6) |
- |
-''' |
- |
-if sys.version_info > (2, 5): |
- # Load tests |
- exec inlineCallbacksTestsSource |
-else: |
- # Make a placeholder test case |
- class InlineCallbacksTests(unittest.TestCase): |
- skip = "defer.defgen doesn't run on python < 2.5." |
- def test_everything(self): |
- pass |