Exemplo n.º 1
0
 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"}')
Exemplo n.º 2
0
 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}'})
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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')))
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 def tearDown(self) -> None:
     REDIS_CONN.flushall()
Exemplo n.º 8
0
 def setUp(self) -> None:
     REDIS_CONN.flushall()
     self.session_key = '111-222-333'
     services.StoreService.add_session_data({'A': 'B'}, '111-222-333')