Removed exit_unless_* methods, fixed the stuff that depended on them.

This commit is contained in:
Ryan Williams
2009-08-14 18:54:40 -07:00
parent 29d9ccfb5c
commit cc122a88a9
4 changed files with 48 additions and 27 deletions

View File

@@ -25,13 +25,10 @@ import os
import errno import errno
import unittest import unittest
def exit_unless_twisted():
def requires_twisted(func):
from eventlet.api import get_hub from eventlet.api import get_hub
if 'Twisted' not in type(get_hub()).__name__: if 'Twisted' not in type(get_hub()).__name__:
exit_disabled()
def requires_25(func):
if sys.version_info[:2]<(2, 5):
try: try:
from nose.plugins.skip import SkipTest from nose.plugins.skip import SkipTest
def skipme(*a, **k): def skipme(*a, **k):
@@ -39,6 +36,7 @@ def requires_25(func):
skipme.__name__ == func.__name__ skipme.__name__ == func.__name__
return skipme return skipme
except ImportError: except ImportError:
# no nose, we'll just skip the test ourselves
return lambda *a, **k: None return lambda *a, **k: None
else: else:
return func return func

View File

@@ -32,7 +32,6 @@ try:
except ImportError: except ImportError:
import pysqlite2.dbapi2 as sqlite3 import pysqlite2.dbapi2 as sqlite3
import warnings import warnings
from tests import disabled_marker
warnings.simplefilter('ignore') warnings.simplefilter('ignore')
@@ -71,8 +70,6 @@ def main():
if not debug: if not debug:
if returncode==1: if returncode==1:
pass pass
elif returncode==8 and disabled_marker in stdout:
pass
else: else:
record(changeset, argv, stdout, returncode) record(changeset, argv, stdout, returncode)
os.unlink(output_name) os.unlink(output_name)

View File

@@ -19,17 +19,19 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE. # THE SOFTWARE.
from twisted.internet import reactor from tests import requires_twisted
from tests import exit_unless_twisted
exit_unless_twisted()
import unittest import unittest
try:
from twisted.internet import reactor
from twisted.internet.error import DNSLookupError from twisted.internet.error import DNSLookupError
from twisted.internet import defer from twisted.internet import defer
from twisted.python.failure import Failure from twisted.python.failure import Failure
from eventlet.twistedutil import block_on from eventlet.twistedutil import block_on
except ImportError:
pass
class Test(unittest.TestCase): class Test(unittest.TestCase):
@requires_twisted
def test_block_on_success(self): def test_block_on_success(self):
from twisted.internet import reactor from twisted.internet import reactor
d = reactor.resolver.getHostByName('www.google.com') d = reactor.resolver.getHostByName('www.google.com')
@@ -38,16 +40,19 @@ class Test(unittest.TestCase):
ip2 = block_on(d) ip2 = block_on(d)
assert ip == ip2, (ip, ip2) assert ip == ip2, (ip, ip2)
@requires_twisted
def test_block_on_fail(self): def test_block_on_fail(self):
from twisted.internet import reactor from twisted.internet import reactor
d = reactor.resolver.getHostByName('xxx') d = reactor.resolver.getHostByName('xxx')
self.assertRaises(DNSLookupError, block_on, d) self.assertRaises(DNSLookupError, block_on, d)
@requires_twisted
def test_block_on_already_succeed(self): def test_block_on_already_succeed(self):
d = defer.succeed('hey corotwine') d = defer.succeed('hey corotwine')
res = block_on(d) res = block_on(d)
assert res == 'hey corotwine', `res` assert res == 'hey corotwine', `res`
@requires_twisted
def test_block_on_already_failed(self): def test_block_on_already_failed(self):
d = defer.fail(Failure(ZeroDivisionError())) d = defer.fail(Failure(ZeroDivisionError()))
self.assertRaises(ZeroDivisionError, block_on, d) self.assertRaises(ZeroDivisionError, block_on, d)

View File

@@ -19,15 +19,25 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE. # THE SOFTWARE.
from twisted.internet import reactor from tests import requires_twisted
from tests import exit_unless_twisted
exit_unless_twisted()
import unittest import unittest
try:
from twisted.internet import reactor
from twisted.internet.error import ConnectionDone from twisted.internet.error import ConnectionDone
import eventlet.twistedutil.protocol as pr import eventlet.twistedutil.protocol as pr
from eventlet.twistedutil.protocols.basic import LineOnlyReceiverTransport from eventlet.twistedutil.protocols.basic import LineOnlyReceiverTransport
except ImportError:
# stub out some of the twisted dependencies so it at least imports
class dummy(object):
pass
pr = dummy()
pr.UnbufferedTransport = None
pr.GreenTransport = None
pr.GreenClientCreator = lambda *a, **k: None
class reactor(object):
pass
from eventlet.api import spawn, sleep, with_timeout, call_after from eventlet.api import spawn, sleep, with_timeout, call_after
from eventlet.coros import event from eventlet.coros import event
@@ -93,12 +103,14 @@ class TestUnbufferedTransport(TestCase):
gtransportClass = pr.UnbufferedTransport gtransportClass = pr.UnbufferedTransport
setup_server = setup_server_SpawnFactory setup_server = setup_server_SpawnFactory
@requires_twisted
def test_full_read(self): def test_full_read(self):
self.conn.write('hello\r\n') self.conn.write('hello\r\n')
self.assertEqual(self.conn.read(), 'you said hello. BYE') self.assertEqual(self.conn.read(), 'you said hello. BYE')
self.assertEqual(self.conn.read(), '') self.assertEqual(self.conn.read(), '')
self.assertEqual(self.conn.read(), '') self.assertEqual(self.conn.read(), '')
@requires_twisted
def test_iterator(self): def test_iterator(self):
self.conn.write('iterator\r\n') self.conn.write('iterator\r\n')
self.assertEqual('you said iterator. BYE', ''.join(self.conn)) self.assertEqual('you said iterator. BYE', ''.join(self.conn))
@@ -111,6 +123,7 @@ class TestGreenTransport(TestUnbufferedTransport):
gtransportClass = pr.GreenTransport gtransportClass = pr.GreenTransport
setup_server = setup_server_SpawnFactory setup_server = setup_server_SpawnFactory
@requires_twisted
def test_read(self): def test_read(self):
self.conn.write('hello\r\n') self.conn.write('hello\r\n')
self.assertEqual(self.conn.read(9), 'you said ') self.assertEqual(self.conn.read(9), 'you said ')
@@ -120,30 +133,35 @@ class TestGreenTransport(TestUnbufferedTransport):
self.assertEqual(self.conn.recv(9), '') self.assertEqual(self.conn.recv(9), '')
self.assertEqual(self.conn.recv(1), '') self.assertEqual(self.conn.recv(1), '')
@requires_twisted
def test_read2(self): def test_read2(self):
self.conn.write('world\r\n') self.conn.write('world\r\n')
self.assertEqual(self.conn.read(), 'you said world. BYE') self.assertEqual(self.conn.read(), 'you said world. BYE')
self.assertEqual(self.conn.read(), '') self.assertEqual(self.conn.read(), '')
self.assertEqual(self.conn.recv(), '') self.assertEqual(self.conn.recv(), '')
@requires_twisted
def test_iterator(self): def test_iterator(self):
self.conn.write('iterator\r\n') self.conn.write('iterator\r\n')
self.assertEqual('you said iterator. BYE', ''.join(self.conn)) self.assertEqual('you said iterator. BYE', ''.join(self.conn))
_tests = [x for x in locals().keys() if x.startswith('test_')] _tests = [x for x in locals().keys() if x.startswith('test_')]
@requires_twisted
def test_resume_producing(self): def test_resume_producing(self):
for test in self._tests: for test in self._tests:
self.setUp() self.setUp()
self.conn.resumeProducing() self.conn.resumeProducing()
getattr(self, test)() getattr(self, test)()
@requires_twisted
def test_pause_producing(self): def test_pause_producing(self):
self.conn.pauseProducing() self.conn.pauseProducing()
self.conn.write('hi\r\n') self.conn.write('hi\r\n')
result = with_timeout(DELAY*10, self.conn.read, timeout_value='timed out') result = with_timeout(DELAY*10, self.conn.read, timeout_value='timed out')
self.assertEqual('timed out', result) self.assertEqual('timed out', result)
@requires_twisted
def test_pauseresume_producing(self): def test_pauseresume_producing(self):
self.conn.pauseProducing() self.conn.pauseProducing()
call_after(DELAY*5, self.conn.resumeProducing) call_after(DELAY*5, self.conn.resumeProducing)
@@ -206,7 +224,7 @@ if socket is not None:
class TestTLSError(unittest.TestCase): class TestTLSError(unittest.TestCase):
@requires_twisted
def test_server_connectionMade_never_called(self): def test_server_connectionMade_never_called(self):
# trigger case when protocol instance is created, # trigger case when protocol instance is created,
# but it's connectionMade is never called # but it's connectionMade is never called
@@ -229,6 +247,9 @@ try:
except ImportError: except ImportError:
del TestTLSError del TestTLSError
if __name__=='__main__': @requires_twisted
def main():
unittest.main() unittest.main()
if __name__=='__main__':
main()