From 32bae8040d3ca967f1ca50860a87b535eddaa57d Mon Sep 17 00:00:00 2001 From: Daniel Grana Date: Tue, 23 Jun 2009 14:59:03 -0300 Subject: [PATCH] add basic mustbe_deferred tests --- scrapy/tests/test_utils_defer.py | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 scrapy/tests/test_utils_defer.py diff --git a/scrapy/tests/test_utils_defer.py b/scrapy/tests/test_utils_defer.py new file mode 100644 index 000000000..84f39c25d --- /dev/null +++ b/scrapy/tests/test_utils_defer.py @@ -0,0 +1,33 @@ +from itertools import imap +from twisted.trial import unittest + +from twisted.internet import reactor +from twisted.internet.defer import Deferred +from scrapy.utils.defer import mustbe_deferred + + +class MustbeDeferredTest(unittest.TestCase): + def test_success_function(self): + steps = [] + def _append(v): + steps.append(v) + return steps + + dfd = mustbe_deferred(_append, 1) + dfd.addCallback(self.assertEqual, [1,2]) # it is [1] with maybeDeferred + steps.append(2) # add another value, that should be catched by assertEqual + return dfd + + def test_unfired_deferred(self): + steps = [] + def _append(v): + steps.append(v) + dfd = Deferred() + reactor.callLater(0, dfd.callback, steps) + return dfd + + dfd = mustbe_deferred(_append, 1) + dfd.addCallback(self.assertEqual, [1,2]) # it is [1] with maybeDeferred + steps.append(2) # add another value, that should be catched by assertEqual + return dfd +