remove greentest/tests.py
This commit is contained in:
@@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
# package is named greentest, not test, so it won't be confused with test in stdlib
|
# package is named greentest, not test, so it won't be confused with test in stdlib
|
||||||
import sys
|
import sys
|
||||||
|
import os
|
||||||
|
import errno
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
disabled_marker = '-*-*-*-*-*- disabled -*-*-*-*-*-'
|
disabled_marker = '-*-*-*-*-*- disabled -*-*-*-*-*-'
|
||||||
@@ -45,4 +47,10 @@ class LimitedTestCase(unittest.TestCase):
|
|||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.timer.cancel()
|
self.timer.cancel()
|
||||||
|
|
||||||
|
def find_command(command):
|
||||||
|
for dir in os.getenv('PATH', '/usr/bin:/usr/sbin').split(os.pathsep):
|
||||||
|
p = os.path.join(dir, command)
|
||||||
|
if os.access(p, os.X_OK):
|
||||||
|
return p
|
||||||
|
raise IOError(errno.ENOENT, 'Command not found: %r' % command)
|
||||||
|
|
||||||
|
@@ -21,10 +21,10 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
from unittest import TestCase, main
|
||||||
|
|
||||||
from eventlet import api
|
from eventlet import api
|
||||||
from eventlet import greenio
|
from eventlet import greenio
|
||||||
from greentest import tests
|
|
||||||
from eventlet import util
|
from eventlet import util
|
||||||
|
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ def check_hub():
|
|||||||
assert not api.get_hub().running
|
assert not api.get_hub().running
|
||||||
|
|
||||||
|
|
||||||
class TestApi(tests.TestCase):
|
class TestApi(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
|
|
||||||
certificate_file = os.path.join(os.path.dirname(__file__), 'test_server.crt')
|
certificate_file = os.path.join(os.path.dirname(__file__), 'test_server.crt')
|
||||||
@@ -218,5 +218,5 @@ class Foo(object):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
|
||||||
|
@@ -19,10 +19,10 @@
|
|||||||
# 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 greentest import tests
|
from unittest import TestCase, main
|
||||||
from eventlet import coros, api
|
from eventlet import coros, api
|
||||||
|
|
||||||
class TestEvent(tests.TestCase):
|
class TestEvent(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# raise an exception if we're waiting forever
|
# raise an exception if we're waiting forever
|
||||||
@@ -115,7 +115,7 @@ class IncrActor(coros.Actor):
|
|||||||
if evt: evt.send()
|
if evt: evt.send()
|
||||||
|
|
||||||
|
|
||||||
class TestActor(tests.TestCase):
|
class TestActor(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# raise an exception if we're waiting forever
|
# raise an exception if we're waiting forever
|
||||||
@@ -229,4 +229,4 @@ class TestActor(tests.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
@@ -21,9 +21,8 @@
|
|||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
# 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 unittest import TestCase, main
|
||||||
from eventlet import api, coros
|
from eventlet import api, coros
|
||||||
from greentest import tests
|
|
||||||
from eventlet import db_pool
|
from eventlet import db_pool
|
||||||
|
|
||||||
class DBTester(object):
|
class DBTester(object):
|
||||||
@@ -513,13 +512,13 @@ class TestMysqlConnectionPool(object):
|
|||||||
|
|
||||||
|
|
||||||
# for some reason the tpool test hangs if run after the saranwrap test
|
# for some reason the tpool test hangs if run after the saranwrap test
|
||||||
class Test01MysqlTpool(TestMysqlConnectionPool, TestTpoolConnectionPool, tests.TestCase):
|
class Test01MysqlTpool(TestMysqlConnectionPool, TestTpoolConnectionPool, TestCase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class Test02MysqlSaranwrap(TestMysqlConnectionPool, TestSaranwrapConnectionPool, tests.TestCase):
|
class Test02MysqlSaranwrap(TestMysqlConnectionPool, TestSaranwrapConnectionPool, TestCase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class Test03MysqlRaw(TestMysqlConnectionPool, TestRawConnectionPool, tests.TestCase):
|
class Test03MysqlRaw(TestMysqlConnectionPool, TestRawConnectionPool, TestCase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@@ -529,6 +528,6 @@ if __name__ == '__main__':
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
print "Unable to import MySQLdb, skipping db_pool_test."
|
print "Unable to import MySQLdb, skipping db_pool_test."
|
||||||
else:
|
else:
|
||||||
tests.main()
|
main()
|
||||||
else:
|
else:
|
||||||
import MySQLdb
|
import MySQLdb
|
||||||
|
@@ -17,13 +17,13 @@
|
|||||||
# 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 greentest import tests
|
from unittest import TestCase, main
|
||||||
from eventlet import api
|
from eventlet import api
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
# TODO try and reuse unit tests from within Python itself
|
# TODO try and reuse unit tests from within Python itself
|
||||||
|
|
||||||
class TestGreenIo(tests.TestCase):
|
class TestGreenIo(TestCase):
|
||||||
def test_close_with_makefile(self):
|
def test_close_with_makefile(self):
|
||||||
def accept_close_early(listener):
|
def accept_close_early(listener):
|
||||||
# verify that the makefile and the socket are truly independent
|
# verify that the makefile and the socket are truly independent
|
||||||
@@ -98,4 +98,4 @@ class TestGreenIo(tests.TestCase):
|
|||||||
timer.cancel()
|
timer.cancel()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
@@ -20,6 +20,7 @@
|
|||||||
# THE SOFTWARE.
|
# THE SOFTWARE.
|
||||||
|
|
||||||
import cgi
|
import cgi
|
||||||
|
from unittest import TestCase, main
|
||||||
|
|
||||||
from eventlet import api
|
from eventlet import api
|
||||||
from eventlet import httpc
|
from eventlet import httpc
|
||||||
@@ -32,9 +33,6 @@ except ImportError:
|
|||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
|
|
||||||
from greentest import tests
|
|
||||||
|
|
||||||
|
|
||||||
class Site(object):
|
class Site(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.stuff = {'hello': 'hello world'}
|
self.stuff = {'hello': 'hello world'}
|
||||||
@@ -127,7 +125,7 @@ class TestBase(object):
|
|||||||
api.kill(self.victim)
|
api.kill(self.victim)
|
||||||
|
|
||||||
|
|
||||||
class TestHttpc(TestBase, tests.TestCase):
|
class TestHttpc(TestBase, TestCase):
|
||||||
def test_get_bad_uri(self):
|
def test_get_bad_uri(self):
|
||||||
self.assertRaises(httpc.NotFound,
|
self.assertRaises(httpc.NotFound,
|
||||||
lambda: httpc.get(self.base_url() + 'b0gu5'))
|
lambda: httpc.get(self.base_url() + 'b0gu5'))
|
||||||
@@ -259,7 +257,7 @@ class Site307(RedirectSite):
|
|||||||
response_code = "307 Temporary Redirect"
|
response_code = "307 Temporary Redirect"
|
||||||
|
|
||||||
|
|
||||||
class TestHttpc301(TestBase, tests.TestCase):
|
class TestHttpc301(TestBase, TestCase):
|
||||||
site_class = Site301
|
site_class = Site301
|
||||||
|
|
||||||
def base_url(self):
|
def base_url(self):
|
||||||
@@ -284,7 +282,7 @@ class TestHttpc301(TestBase, tests.TestCase):
|
|||||||
self.assertEquals(response, data)
|
self.assertEquals(response, data)
|
||||||
|
|
||||||
|
|
||||||
class TestHttpc302(TestBase, tests.TestCase):
|
class TestHttpc302(TestBase, TestCase):
|
||||||
site_class = Site302
|
site_class = Site302
|
||||||
|
|
||||||
def test_get_expired(self):
|
def test_get_expired(self):
|
||||||
@@ -306,7 +304,7 @@ class TestHttpc302(TestBase, tests.TestCase):
|
|||||||
self.assertEquals(httpc.get(self.base_url() + 'expires/hello', max_retries=1), 'hello world')
|
self.assertEquals(httpc.get(self.base_url() + 'expires/hello', max_retries=1), 'hello world')
|
||||||
|
|
||||||
|
|
||||||
class TestHttpc303(TestBase, tests.TestCase):
|
class TestHttpc303(TestBase, TestCase):
|
||||||
site_class = Site303
|
site_class = Site303
|
||||||
|
|
||||||
def base_url(self):
|
def base_url(self):
|
||||||
@@ -322,7 +320,7 @@ class TestHttpc303(TestBase, tests.TestCase):
|
|||||||
self.assertEquals(response, data)
|
self.assertEquals(response, data)
|
||||||
|
|
||||||
|
|
||||||
class TestHttpc307(TestBase, tests.TestCase):
|
class TestHttpc307(TestBase, TestCase):
|
||||||
site_class = Site307
|
site_class = Site307
|
||||||
|
|
||||||
def base_url(self):
|
def base_url(self):
|
||||||
@@ -344,7 +342,7 @@ class Site500(BasicSite):
|
|||||||
return ["screw you world"]
|
return ["screw you world"]
|
||||||
|
|
||||||
|
|
||||||
class TestHttpc500(TestBase, tests.TestCase):
|
class TestHttpc500(TestBase, TestCase):
|
||||||
site_class = Site500
|
site_class = Site500
|
||||||
|
|
||||||
def base_url(self):
|
def base_url(self):
|
||||||
@@ -367,7 +365,7 @@ class Site504(BasicSite):
|
|||||||
return ["screw you world"]
|
return ["screw you world"]
|
||||||
|
|
||||||
|
|
||||||
class TestHttpc504(TestBase, tests.TestCase):
|
class TestHttpc504(TestBase, TestCase):
|
||||||
site_class = Site504
|
site_class = Site504
|
||||||
|
|
||||||
def base_url(self):
|
def base_url(self):
|
||||||
@@ -381,7 +379,7 @@ class TestHttpc504(TestBase, tests.TestCase):
|
|||||||
lambda: httpc.post(self.base_url(), data=data))
|
lambda: httpc.post(self.base_url(), data=data))
|
||||||
|
|
||||||
|
|
||||||
class TestHttpTime(tests.TestCase):
|
class TestHttpTime(TestCase):
|
||||||
rfc1123_time = 'Sun, 06 Nov 1994 08:49:37 GMT'
|
rfc1123_time = 'Sun, 06 Nov 1994 08:49:37 GMT'
|
||||||
rfc850_time = 'Sunday, 06-Nov-94 08:49:37 GMT'
|
rfc850_time = 'Sunday, 06-Nov-94 08:49:37 GMT'
|
||||||
asctime_time = 'Sun Nov 6 08:49:37 1994'
|
asctime_time = 'Sun Nov 6 08:49:37 1994'
|
||||||
@@ -395,7 +393,7 @@ class TestHttpTime(tests.TestCase):
|
|||||||
self.assertEqual(ticks, self.secs_since_epoch)
|
self.assertEqual(ticks, self.secs_since_epoch)
|
||||||
|
|
||||||
|
|
||||||
class TestProxy(tests.TestCase):
|
class TestProxy(TestCase):
|
||||||
def test_ssl_proxy(self):
|
def test_ssl_proxy(self):
|
||||||
def ssl_proxy(sock):
|
def ssl_proxy(sock):
|
||||||
conn, addr = sock.accept()
|
conn, addr = sock.accept()
|
||||||
@@ -460,4 +458,4 @@ class TestProxy(tests.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
@@ -19,23 +19,22 @@
|
|||||||
# 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 unittest import TestCase, main
|
||||||
|
|
||||||
from eventlet import api
|
from eventlet import api
|
||||||
from eventlet import httpd
|
from eventlet import httpd
|
||||||
from eventlet import processes
|
from eventlet import processes
|
||||||
from eventlet import util
|
from eventlet import util
|
||||||
|
|
||||||
|
from greentest import find_command
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
|
|
||||||
util.wrap_socket_with_coroutine_socket()
|
util.wrap_socket_with_coroutine_socket()
|
||||||
|
|
||||||
|
|
||||||
from greentest import tests
|
|
||||||
|
|
||||||
|
|
||||||
class Site(object):
|
class Site(object):
|
||||||
def handle_request(self, req):
|
def handle_request(self, req):
|
||||||
path = req.path_segments()
|
path = req.path_segments()
|
||||||
@@ -86,7 +85,7 @@ def read_http(sock):
|
|||||||
return response_line, headers, body
|
return response_line, headers, body
|
||||||
|
|
||||||
|
|
||||||
class TestHttpd(tests.TestCase):
|
class TestHttpd(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.logfile = StringIO()
|
self.logfile = StringIO()
|
||||||
@@ -148,7 +147,7 @@ class TestHttpd(tests.TestCase):
|
|||||||
def skip_test_005_run_apachebench(self):
|
def skip_test_005_run_apachebench(self):
|
||||||
url = 'http://localhost:12346/'
|
url = 'http://localhost:12346/'
|
||||||
# ab is apachebench
|
# ab is apachebench
|
||||||
out = processes.Process(tests.find_command('ab'),
|
out = processes.Process(find_command('ab'),
|
||||||
['-c','64','-n','1024', '-k', url])
|
['-c','64','-n','1024', '-k', url])
|
||||||
print out.read()
|
print out.read()
|
||||||
|
|
||||||
@@ -208,4 +207,4 @@ class TestHttpd(tests.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
@@ -18,12 +18,12 @@
|
|||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
# 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 unittest import TestCase, main
|
||||||
|
|
||||||
from eventlet import api
|
from eventlet import api
|
||||||
from eventlet import channel
|
from eventlet import channel
|
||||||
from eventlet import coros
|
from eventlet import coros
|
||||||
from eventlet import pools
|
from eventlet import pools
|
||||||
from greentest import tests
|
|
||||||
|
|
||||||
class IntPool(pools.Pool):
|
class IntPool(pools.Pool):
|
||||||
def create(self):
|
def create(self):
|
||||||
@@ -31,7 +31,7 @@ class IntPool(pools.Pool):
|
|||||||
return self.current_integer
|
return self.current_integer
|
||||||
|
|
||||||
|
|
||||||
class TestIntPool(tests.TestCase):
|
class TestIntPool(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = IntPool(min_size=0, max_size=4)
|
self.pool = IntPool(min_size=0, max_size=4)
|
||||||
@@ -142,7 +142,7 @@ class TestIntPool(tests.TestCase):
|
|||||||
timer.cancel()
|
timer.cancel()
|
||||||
|
|
||||||
|
|
||||||
class TestAbstract(tests.TestCase):
|
class TestAbstract(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def test_abstract(self):
|
def test_abstract(self):
|
||||||
## Going for 100% coverage here
|
## Going for 100% coverage here
|
||||||
@@ -151,7 +151,7 @@ class TestAbstract(tests.TestCase):
|
|||||||
self.assertRaises(NotImplementedError, pool.get)
|
self.assertRaises(NotImplementedError, pool.get)
|
||||||
|
|
||||||
|
|
||||||
class TestIntPool2(tests.TestCase):
|
class TestIntPool2(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = IntPool(min_size=3, max_size=3)
|
self.pool = IntPool(min_size=3, max_size=3)
|
||||||
@@ -164,7 +164,7 @@ class TestIntPool2(tests.TestCase):
|
|||||||
self.assertEquals(gotten, 1)
|
self.assertEquals(gotten, 1)
|
||||||
|
|
||||||
|
|
||||||
class TestOrderAsStack(tests.TestCase):
|
class TestOrderAsStack(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = IntPool(max_size=3, order_as_stack=True)
|
self.pool = IntPool(max_size=3, order_as_stack=True)
|
||||||
@@ -183,7 +183,7 @@ class RaisePool(pools.Pool):
|
|||||||
raise RuntimeError()
|
raise RuntimeError()
|
||||||
|
|
||||||
|
|
||||||
class TestCreateRaises(tests.TestCase):
|
class TestCreateRaises(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = RaisePool(max_size=3)
|
self.pool = RaisePool(max_size=3)
|
||||||
@@ -201,7 +201,7 @@ SOMETIMES = RuntimeError('I fail half the time')
|
|||||||
class TestTookTooLong(Exception):
|
class TestTookTooLong(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class TestFan(tests.TestCase):
|
class TestFan(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.timer = api.exc_after(1, TestTookTooLong())
|
self.timer = api.exc_after(1, TestTookTooLong())
|
||||||
@@ -235,5 +235,5 @@ class TestFan(tests.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
|
||||||
|
@@ -20,11 +20,11 @@
|
|||||||
# THE SOFTWARE.
|
# THE SOFTWARE.
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
from unittest import TestCase, main
|
||||||
|
|
||||||
from greentest import tests
|
|
||||||
from eventlet import processes
|
from eventlet import processes
|
||||||
|
|
||||||
class TestEchoPool(tests.TestCase):
|
class TestEchoPool(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = processes.ProcessPool('echo', ["hello"])
|
self.pool = processes.ProcessPool('echo', ["hello"])
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ class TestEchoPool(tests.TestCase):
|
|||||||
self.pool.put(proc)
|
self.pool.put(proc)
|
||||||
|
|
||||||
|
|
||||||
class TestCatPool(tests.TestCase):
|
class TestCatPool(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = processes.ProcessPool('cat')
|
self.pool = processes.ProcessPool('cat')
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ class TestCatPool(tests.TestCase):
|
|||||||
self.pool.put(proc)
|
self.pool.put(proc)
|
||||||
|
|
||||||
|
|
||||||
class TestDyingProcessesLeavePool(tests.TestCase):
|
class TestDyingProcessesLeavePool(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = processes.ProcessPool('echo', ['hello'], max_size=1)
|
self.pool = processes.ProcessPool('echo', ['hello'], max_size=1)
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ class TestDyingProcessesLeavePool(tests.TestCase):
|
|||||||
self.assert_(proc is not proc2)
|
self.assert_(proc is not proc2)
|
||||||
|
|
||||||
|
|
||||||
class TestProcessLivesForever(tests.TestCase):
|
class TestProcessLivesForever(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pool = processes.ProcessPool(sys.executable, ['-c', 'print "y"; import time; time.sleep(0.4); print "y"'], max_size=1)
|
self.pool = processes.ProcessPool(sys.executable, ['-c', 'print "y"; import time; time.sleep(0.4); print "y"'], max_size=1)
|
||||||
|
|
||||||
@@ -131,4 +131,4 @@ class TestProcessLivesForever(tests.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
@@ -1,86 +0,0 @@
|
|||||||
# @author Donovan Preston
|
|
||||||
# @brief Indirection layer for tests in case we want to fix unittest.
|
|
||||||
#
|
|
||||||
# Copyright (c) 2006-2007, Linden Research, Inc.
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
|
||||||
# in the Software without restriction, including without limitation the rights
|
|
||||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
# copies of the Software, and to permit persons to whom the Software is
|
|
||||||
# furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice shall be included in
|
|
||||||
# all copies or substantial portions of the Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
# THE SOFTWARE.
|
|
||||||
|
|
||||||
import errno
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import unittest, doctest
|
|
||||||
|
|
||||||
|
|
||||||
TestCase = unittest.TestCase
|
|
||||||
|
|
||||||
|
|
||||||
name = getattr(sys.modules['__main__'], '__name__', None)
|
|
||||||
main = unittest.main
|
|
||||||
|
|
||||||
# listing of files containing doctests
|
|
||||||
doc_test_files = ['coros']
|
|
||||||
|
|
||||||
def find_command(command):
|
|
||||||
for dir in os.getenv('PATH', '/usr/bin:/usr/sbin').split(os.pathsep):
|
|
||||||
p = os.path.join(dir, command)
|
|
||||||
if os.access(p, os.X_OK):
|
|
||||||
return p
|
|
||||||
raise IOError(errno.ENOENT, 'Command not found: %r' % command)
|
|
||||||
|
|
||||||
def run_all_tests(test_files = doc_test_files):
|
|
||||||
""" Runs all the unit tests, returning immediately after the
|
|
||||||
first failed test.
|
|
||||||
|
|
||||||
Returns true if the tests all succeeded. This method is really much longer
|
|
||||||
than it ought to be.
|
|
||||||
"""
|
|
||||||
eventlet_dir = os.path.realpath(os.path.dirname(__file__))
|
|
||||||
if eventlet_dir not in sys.path:
|
|
||||||
sys.path.append(eventlet_dir)
|
|
||||||
|
|
||||||
# add all _test files as a policy
|
|
||||||
import glob
|
|
||||||
test_files += [os.path.splitext(os.path.basename(x))[0]
|
|
||||||
for x in glob.glob(os.path.join(eventlet_dir, "*_test.py"))]
|
|
||||||
test_files.sort()
|
|
||||||
|
|
||||||
for test_file in test_files:
|
|
||||||
print "-=", test_file, "=-"
|
|
||||||
try:
|
|
||||||
test_module = __import__(test_file)
|
|
||||||
except ImportError:
|
|
||||||
print "Unable to import %s, skipping" % test_file
|
|
||||||
continue
|
|
||||||
|
|
||||||
if test_file.endswith('_test'):
|
|
||||||
# gawd, unittest, why you make it so difficult to just run some tests!
|
|
||||||
suite = unittest.findTestCases(test_module)
|
|
||||||
result = unittest.TextTestRunner().run(suite)
|
|
||||||
if not result.wasSuccessful():
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
failures, tests = doctest.testmod(test_module)
|
|
||||||
if failures:
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
print "OK"
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
run_all_tests()
|
|
@@ -19,12 +19,11 @@
|
|||||||
# 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.
|
||||||
|
|
||||||
import unittest
|
from unittest import TestCase, main
|
||||||
|
|
||||||
from eventlet import api, timer
|
from eventlet import api, timer
|
||||||
from greentest import tests
|
|
||||||
|
|
||||||
class TestTimer(tests.TestCase):
|
class TestTimer(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def test_copy(self):
|
def test_copy(self):
|
||||||
t = timer.Timer(0, lambda: None)
|
t = timer.Timer(0, lambda: None)
|
||||||
@@ -62,4 +61,4 @@ class TestTimer(tests.TestCase):
|
|||||||
assert not hub.running
|
assert not hub.running
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
main()
|
||||||
|
@@ -13,16 +13,15 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import time
|
|
||||||
from eventlet import coros, api, tpool
|
|
||||||
from greentest import tests
|
|
||||||
|
|
||||||
from sys import stdout
|
from sys import stdout
|
||||||
|
import time
|
||||||
|
from unittest import TestCase, main
|
||||||
import random
|
import random
|
||||||
r = random.WichmannHill()
|
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
from eventlet import coros, api, tpool
|
||||||
|
|
||||||
|
r = random.WichmannHill()
|
||||||
_g_debug = False
|
_g_debug = False
|
||||||
|
|
||||||
def prnt(msg):
|
def prnt(msg):
|
||||||
@@ -59,7 +58,7 @@ one = 1
|
|||||||
two = 2
|
two = 2
|
||||||
three = 3
|
three = 3
|
||||||
|
|
||||||
class TestTpool(tests.TestCase):
|
class TestTpool(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# turn off exception printing, because we'll be deliberately
|
# turn off exception printing, because we'll be deliberately
|
||||||
# triggering exceptions in our tests
|
# triggering exceptions in our tests
|
||||||
@@ -214,4 +213,4 @@ class TestTpool(tests.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
@@ -21,20 +21,20 @@
|
|||||||
|
|
||||||
import cgi
|
import cgi
|
||||||
import os
|
import os
|
||||||
|
from unittest import TestCase, main
|
||||||
|
|
||||||
from eventlet import api
|
from eventlet import api
|
||||||
from eventlet import wsgi
|
from eventlet import wsgi
|
||||||
from eventlet import processes
|
from eventlet import processes
|
||||||
|
|
||||||
|
from greentest import find_command
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
|
|
||||||
from greentest import tests
|
|
||||||
|
|
||||||
|
|
||||||
def hello_world(env, start_response):
|
def hello_world(env, start_response):
|
||||||
if env['PATH_INFO'] == 'notexist':
|
if env['PATH_INFO'] == 'notexist':
|
||||||
start_response('404 Not Found', [('Content-type', 'text/plain')])
|
start_response('404 Not Found', [('Content-type', 'text/plain')])
|
||||||
@@ -104,7 +104,7 @@ def read_http(sock):
|
|||||||
return response_line, headers, body
|
return response_line, headers, body
|
||||||
|
|
||||||
|
|
||||||
class TestHttpd(tests.TestCase):
|
class TestHttpd(TestCase):
|
||||||
mode = 'static'
|
mode = 'static'
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.logfile = StringIO()
|
self.logfile = StringIO()
|
||||||
@@ -167,7 +167,7 @@ class TestHttpd(tests.TestCase):
|
|||||||
def skip_test_005_run_apachebench(self):
|
def skip_test_005_run_apachebench(self):
|
||||||
url = 'http://localhost:12346/'
|
url = 'http://localhost:12346/'
|
||||||
# ab is apachebench
|
# ab is apachebench
|
||||||
out = processes.Process(tests.find_command('ab'),
|
out = processes.Process(find_command('ab'),
|
||||||
['-c','64','-n','1024', '-k', url])
|
['-c','64','-n','1024', '-k', url])
|
||||||
print out.read()
|
print out.read()
|
||||||
|
|
||||||
@@ -293,4 +293,4 @@ class TestHttpd(tests.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
tests.main()
|
main()
|
||||||
|
Reference in New Issue
Block a user