def walk_path(life):
	if life['path']:
		_pos = list(life['path'].pop(0))
		_nfx = _pos[0]
		_nfy = _pos[1]
		
		if maps.is_solid((_nfx, _nfy, life['pos'][2]+1)) and not maps.is_solid((_nfx, _nfy, life['pos'][2]+2)):
			life['pos'][2] += 1
		elif not maps.is_solid((_nfx, _nfy, life['pos'][2])) and maps.is_solid((_nfx, _nfy, life['pos'][2]-1)):
			life['pos'][2] -= 1
		
		_next_chunk = chunks.get_chunk(chunks.get_chunk_key_at((_nfx, _nfy)))
		for item_uid in _next_chunk['items'][:]:
			if not item_uid in ITEMS:
				_next_chunk['items'].remove(item_uid)
		
		for item_uid in _next_chunk['items']:
			if items.is_blocking(item_uid):
				activate_item(life, item_uid)
				return False
		
		if life['id'] in LIFE_MAP[life['pos'][0]][life['pos'][1]]:
			LIFE_MAP[life['pos'][0]][life['pos'][1]].remove(life['id'])
		
		_old_chunk = get_current_chunk_id(life)
		life['pos'][0] = _pos[0]
		life['pos'][1] = _pos[1]
		_new_chunk = get_current_chunk_id(life)
		
		if not _old_chunk == _new_chunk:
			maps.leave_chunk(_old_chunk, life['id'])
		
		maps.enter_chunk(_new_chunk, life['id'])
		
		life['realpos'] = life['pos'][:]
		LIFE_MAP[life['pos'][0]][life['pos'][1]].append(life['id'])
		
		if life['path']:
			return False
		else:
			return True
	else:
		#TODO: Collision with wall
		return True
Test that we can add an image via the filesystem backend with a
dataset/ETHPy150Open flags/Reactor-3/life.py/walk_path--crossover with--dataset/ETHPy150Open openstack/glance_store/glance_store/tests/unit/test_filesystem_store.py/TestStore.test_add_with_file_perm_for_group_other_users_access