Skip to content

Commit

Permalink
is_open() method on SessionPersistence
Browse files Browse the repository at this point in the history
  • Loading branch information
igorsobreira committed Sep 21, 2010
1 parent 28ce154 commit 3bc8fc4
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 6 deletions.
5 changes: 5 additions & 0 deletions eizzek/lib/persistence.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,13 @@ def begin(self, jid, plugin_name):
def end(self, jid):
self.redis.hdel(jid, 'plugin')

def is_open(self, jid):
return self.redis.hlen(jid) > 0

@property
def redis(self):
if not self._redis:
self._redis = Redis(host=self.host, port=self.port)
return self._redis

session = SessionPersistence()
19 changes: 13 additions & 6 deletions tests/functional/test_persistence.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class PersistenceTest(TestCase):
def __init__(self, *args, **kwargs):
TestCase.__init__(self, *args, **kwargs)
self._redis = Redis(host='localhost', port=6379) # db ?
self.persistence = SessionPersistence()
self.session = SessionPersistence()

def setUp(self):
self.jid = 'igor@igorsobreira.com/Adium1234'
Expand All @@ -17,24 +17,31 @@ def setUp(self):
def test_begin_creates_hash(self):
assert not self._redis.hget(self.jid, 'plugin')

self.persistence.begin(self.jid, 'translate')
self.session.begin(self.jid, 'translate')

assert 'translate' == self._redis.hget(self.jid, 'plugin')

def test_duplicates_begins_raises_ioerror(self):
self.persistence.begin(self.jid, 'translate')
self.session.begin(self.jid, 'translate')
try:
self.persistence.begin(self.jid, 'translate')
self.session.begin(self.jid, 'translate')
assert 0, u"Should raise IOError"
except IOError:
pass

def test_end_removes_hash(self):
self.persistence.begin(self.jid, 'translate')
self.session.begin(self.jid, 'translate')

assert self._redis.hget(self.jid, 'plugin')

self.persistence.end(self.jid)
self.session.end(self.jid)

assert not self._redis.hget(self.jid, 'plugin')

def test_is_open_method(self):
assert not self.session.is_open(self.jid)

self._redis.hset(self.jid, 'plugin', 'translate')

assert self.session.is_open(self.jid)

0 comments on commit 3bc8fc4

Please sign in to comment.