1
0
Fork 0
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:
psyc://psyced.org/~lynX 2012-01-02 14:12:33 +01:00
parent 0abc7a0888
commit 9f7c4147c7
46 changed files with 7243 additions and 0 deletions

View 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))]