Skip to content

Commit

Permalink
adding get_current() method to SessionPersistence and making _redis a…
Browse files Browse the repository at this point in the history
…ttribute "private"
  • Loading branch information
igorsobreira committed Sep 21, 2010
1 parent be93a42 commit a451dc4
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
25 changes: 15 additions & 10 deletions eizzek/lib/persistence.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,32 @@
from redis import Redis
from eizzek import config

class SessionPersistence(object):

def __init__(self):
self._redis = None
self.host = 'localhost'
self.port = 6379
self._redis_client = None
self.host = config.REDIS_HOST
self.port = config.REDIS_PORT
self.db = config.REDIS_DB

def begin(self, jid, plugin_name):
if self.is_open(jid):
raise IOError(u"This JID already has an open session")
self.redis.hset(jid, 'plugin', plugin_name)
self._redis.hset(jid, 'plugin', plugin_name)

def end(self, jid):
self.redis.hdel(jid, 'plugin')
self._redis.hdel(jid, 'plugin')

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

def get_current(self, jid):
return self._redis.hgetall(jid)

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

session = SessionPersistence()
5 changes: 5 additions & 0 deletions tests/functional/test_persistence.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,9 @@ def test_is_open_method(self):
self._redis.hset(self.jid, 'plugin', 'translate')

assert self.session.is_open(self.jid)

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

assert u"translate" == self.session.get_current(self.jid)['plugin']

0 comments on commit a451dc4

Please sign in to comment.