def save_tile_ToRedis(tile_id, tile_template, data): # pragma: no cover cache = getCache() tilePrefix = getRedisPrefix(tile_id) if not cache.redis.exists(tilePrefix) and DEBUG: # if tile don't exist, create it with template, DEBUG mode only buildFakeDataFromTemplate(tile_id, tile_template, cache) cachedTile = json.loads(cache.redis.get(tilePrefix)) cachedTile['data'] = update_tile_data_from_redis(cachedTile['data'], json.loads(data), tile_template) cachedTile['modified'] = getIsoTime() cachedTile['tile_template'] = tile_template cache.set(tilePrefix, json.dumps(cachedTile)) return HttpResponse(f'{tile_id} data updated successfully.')
def test_0002_fake_data(self): """ Test fake_data generation """ for tile in self.ALLOWED_TILES: if tile != 'text' and tile != 'empty': tileData = buildFakeDataFromTemplate(f'test_{tile}', template_name=tile, cache=None) self.assertTrue('meta' in tileData) self.assertTrue('data' in tileData) self.assertTrue('id' in tileData) self.assertTrue('tile_template' in tileData)
def update_tile_receive(self, tile_id, template_name=None): # pragma: no cover """ Create or update the tile with value send """ tileData = cache.get(tile_id=getRedisPrefix(tile_id)) if tileData is None: if LOG: print(f'{getTimeStr()} (-) No data in key {tile_id} on Redis.', flush=True) print( f'{getTimeStr()} (-) Generating fake data for {tile_id}.', flush=True) data = buildFakeDataFromTemplate(tile_id, template_name, cache) else: data = json.loads(tileData) if isinstance(data, str): data = json.loads(data) self.send(text_data=json.dumps(data))