def __init__(self, request): self._id = None self.request = request self._collection = get_mongodb(request)[self._collection_name] now = dateutil.utcnow() # Delete old sessions: self._collection.remove({'accessed':{'$lt':now-self._timeout}}, safe=True) now = dateutil.utcnow() created = accessed = now value = None state = {} cookieval = request.cookies.get(self._cookie_name) if cookieval is not None: value = self._collection.find_one(dict(_id=ObjectId(cookieval))) #print "loaded session: cookieval=%s value=%s" % (repr(cookieval), repr(value)) if value is not None: accessed = value['accessed'] created = value['created'] state = value['state'] self._id = ObjectId(cookieval) if now - accessed > self._timeout: state = {} self.created = created self.accessed = accessed dict.__init__(self, state)
def test_validate(self): import dateutil before = dateutil.utcnow() request = testing.DummyRequest() request.GET['title'] = "Hello" request.GET['body'] = "World" result = _getBlogPostClass().validate(request) self.assertEqual(result['title'], "Hello") self.assertEqual(result['body'], "World") # Make sure dateline defaulted to the current time (when validation occurred). self.assertTrue(result['dateline'] > before) after = dateutil.utcnow() self.assertTrue(result['dateline'] < after)
def accessed(session, *arg, **kw): session.accessed = dateutil.utcnow() if not session._dirty: session._dirty = True def set_cookie_callback(request, response): session._set_cookie(response) session.request = None # explicitly break cycle for gc session.request.add_response_callback(set_cookie_callback) return wrapped(session, *arg, **kw)
def purge(self): cutoff = dateutil.utcnow() - self.delete_cutoff_days old_ids = [] for item in self.gridfs._GridFS__files.find({'parents':[], 'uploadDate':{'$lt':cutoff}}, fields=[]): old_ids.append(item['_id']) if old_ids: log.debug("purging old files: %s" % repr(old_ids)) for id in old_ids: self.gridfs.delete(id)