Add working tests, can shutdown conn and pool
This commit is contained in:
48
tests/base.py
Normal file
48
tests/base.py
Normal file
@@ -0,0 +1,48 @@
|
||||
import inspect
|
||||
import unittest
|
||||
from asyncio import coroutine
|
||||
import asyncio
|
||||
import asyncio_mongo
|
||||
|
||||
mongo_host = "localhost"
|
||||
mongo_port = 27017
|
||||
|
||||
|
||||
def yields(value):
|
||||
return isinstance(value, asyncio.futures.Future) or inspect.isgenerator(value)
|
||||
|
||||
|
||||
@coroutine
|
||||
def call_maybe_yield(func, *args, **kwargs):
|
||||
rv = func(*args, **kwargs)
|
||||
if yields(rv):
|
||||
rv = yield from rv
|
||||
return rv
|
||||
|
||||
|
||||
def run_now(func, *args, **kwargs):
|
||||
loop = asyncio.get_event_loop()
|
||||
return loop.run_until_complete(
|
||||
asyncio.Task(call_maybe_yield(func, *args, **kwargs))
|
||||
)
|
||||
|
||||
|
||||
def async(func):
|
||||
def inner(*args, **kwargs):
|
||||
run_now(func, *args, **kwargs)
|
||||
return inner
|
||||
|
||||
|
||||
class MongoTest(unittest.TestCase):
|
||||
|
||||
@async
|
||||
def setUp(self):
|
||||
self.conn = yield from asyncio_mongo.Connection.create(mongo_host, mongo_port)
|
||||
self.db = self.conn.mydb
|
||||
self.coll = self.db.mycol
|
||||
yield from self.coll.drop()
|
||||
|
||||
@async
|
||||
def tearDown(self):
|
||||
yield from self.coll.drop()
|
||||
self.conn.disconnect()
|
||||
Reference in New Issue
Block a user