mirror of
git://git.psyced.org/git/pypsyc
synced 2024-08-15 03:20:04 +00:00
added new pypsyc as 'mjacob2'
This commit is contained in:
parent
0abc7a0888
commit
9f7c4147c7
46 changed files with 7243 additions and 0 deletions
50
mjacob2/tests/test_server/test_db.py
Normal file
50
mjacob2/tests/test_server/test_db.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
"""
|
||||
:copyright: 2010 by Manuel Jacob
|
||||
:license: MIT
|
||||
"""
|
||||
from greenlet import greenlet
|
||||
from nose.tools import assert_raises
|
||||
from tests.helpers import mockify, mockified, check_success
|
||||
|
||||
from pypsyc.server.db import Database
|
||||
|
||||
|
||||
class TestDatabase:
|
||||
def test_sync(self):
|
||||
db = Database(':memory:')
|
||||
db.execute('CREATE TABLE test(test TEXT)')
|
||||
db.execute("INSERT INTO test VALUES ('test')")
|
||||
|
||||
result = db.fetch('SELECT test FROM test')
|
||||
assert result == [('test',)]
|
||||
assert isinstance(result[0][0], str)
|
||||
|
||||
db.stop()
|
||||
|
||||
@check_success
|
||||
@mockified('pypsyc.server.db',['sqlite3', 'Thread', 'reactor'])
|
||||
def test_async(self, sqlite3, Thread, reactor):
|
||||
db = Database('')
|
||||
mockify(db, ['_execute', '_fetch'])
|
||||
e = Exception()
|
||||
db._execute.side_effect = e
|
||||
|
||||
def f():
|
||||
assert_raises(Exception, db.execute)
|
||||
assert db.fetch() == db._fetch.return_value
|
||||
self.success = True
|
||||
gl = greenlet(f)
|
||||
gl.switch()
|
||||
|
||||
# emulate reactor calling this methods
|
||||
gl.throw(e)
|
||||
gl.switch(db._fetch.return_value)
|
||||
|
||||
db.stop()
|
||||
assert db.thread.method_calls == [('start',), ('join',)]
|
||||
|
||||
db.run_async()
|
||||
assert sqlite3.method_calls == [('connect', ('',))]
|
||||
assert reactor.method_calls == [
|
||||
('callFromThread', (gl.throw, e)),
|
||||
('callFromThread', (gl.switch, db._fetch.return_value))]
|
Loading…
Add table
Add a link
Reference in a new issue