def test_add_edge(self, p_get_dt): services.StoreService.add_edge(self.session_key, '/index', '/page') result = REDIS_CONN.lindex(utils.get_edge(self.session_key), 0) p_get_dt.assert_called_once() self.assertEqual( result, '{"from": "/index", "to": "/page", ' + '"dt_create": "2020-05-08 01:16:40.554194"}')
def test_add_node(self, p_dt_create): services.StoreService.add_node(self.session_key, '/') result = REDIS_CONN.hgetall(utils.get_node(self.session_key)) p_dt_create.assert_called_once() self.assertEqual( result, {'/': '{"dt_create": "2020-05-08 00:52:15.718827", "counter": 1}'})
def test_add_session_data_session_is_none(self, p_uuid4): skey = '111' result = services.StoreService.add_session_data({'a': 'b'}) result_obj = REDIS_CONN.hgetall(utils.get_session(skey)) p_uuid4.assert_called_once() self.assertEqual(result_obj, {'a': 'b'}) self.assertEqual(result, skey)
def execute(self): reg = registry.SessionRegistry(REDIS_CONN) expired_keys = reg.get_expired_keys() if expired_keys: if settings.CDZSTAT_PERSISTENCE_MODE: for key in expired_keys: print(f'Save data before delete {key}') # ToDo with REDIS_CONN.pipeline() as p: for key in expired_keys: reg.remove(key, p) p.delete(f'session:{key}') p.execute()
def process(self): session_key = self.ctx.get(SESSION_KEY) request_key = self.ctx.get('request_key') request_data = json.dumps(self.ctx.get('request_data'), cls=DjangoJSONEncoder) if session_key and request_key: if self.ctx.get('kind') == 'native': REDIS_CONN.hset(f'session:{session_key}', f'{request_key}_native', request_data) elif self.ctx.get('kind') == 'script': REDIS_CONN.hset(f'session:{session_key}', f'{request_key}_script', request_data) else: REDIS_CONN.lpush('anonymous_requests', json.dumps(self.ctx.get('request_data')))
def test_inc_node(self): services.StoreService.add_node(self.session_key, '/index') services.StoreService.inc_node(self.session_key, '/index') result = REDIS_CONN.hget(utils.get_node(self.session_key), '/index') result = json.loads(result) self.assertEqual(result.get('counter'), 2)
def tearDown(self) -> None: REDIS_CONN.flushall()
def setUp(self) -> None: REDIS_CONN.flushall() self.session_key = '111-222-333' services.StoreService.add_session_data({'A': 'B'}, '111-222-333')