Exemplo n.º 1
0
 def test_0015_cache_buildFakeData(self):
     """ Test fake_data generation: integrity of data + save in redis """
     for tile in self.ALLOWED_TILES:
         if tile != 'empty':
             tileData = buildFakeDataFromTemplate(tile_id=f'test_{tile}', template_name=tile, cache=self.cache)
             self.assertTrue(tileData is not None)
             self.assertTrue('data' in tileData)
             self.assertTrue('id' in tileData)
             self.assertTrue('tile_template' in tileData)
             isIdCorrect = json.loads(self.cache.redis.get(getRedisPrefix(f'test_{tile}')))['id'] == f'test_{tile}'
             self.assertTrue(isIdCorrect)
     testWithoutCache = buildFakeDataFromTemplate(tile_id='faketest', template_name='Fake_tile', cache=None)
     testWithCache = buildFakeDataFromTemplate(tile_id='faketest', template_name='Fake_tile', cache=self.cache)
     self.assertTrue(testWithoutCache is None and testWithCache is None)
Exemplo n.º 2
0
def save_tile(tile_id, template, data, meta):
    redis_cache = MyCache()
    tilePrefix = getRedisPrefix(tile_id)
    if not redis_cache.redis.exists(tilePrefix) and DEBUG:
        buildFakeDataFromTemplate(
            tile_id, template,
            redis_cache)  # Build fake data and save it on redis
    cachedTile = json.loads(redis_cache.redis.get(tilePrefix))
    cachedTile['tile_template'] = template
    cachedTile['data'] = update_tile_data_from_redis(cachedTile['data'],
                                                     json.loads(data),
                                                     template)
    if meta is not None:
        cachedTile['meta'] = update_meta_if_present(tile_id, meta)
    redis_cache.set(tilePrefix, json.dumps(cachedTile))
    return True
Exemplo n.º 3
0
 def update_tile_receive(self, tile_id, template_name=None):
     """ Create or update the tile with value and send to the client with websocket """
     tileData = MyCache().get(tile_id=getRedisPrefix(tile_id))
     if tileData is None:
         print(
             f'[DEBUG] Building fake data for {tile_id}. with template {template_name}',
             flush=True)
         tileData = buildFakeDataFromTemplate(tile_id, template_name,
                                              MyCache())
     self.send(text_data=tileData)