def test_vtk_pane_from_renwin(document, comm): renWin = make_render_window() pane = VTK(renWin) # Create pane model = pane.get_root(document, comm=comm) assert isinstance(model, VTKSynchronizedPlot) assert pane._models[model.ref['id']][0] is model # Check array release when actor are removed from scene ctx = pane._contexts[model.id] assert len(ctx.dataArrayCache.keys()) == 5 pane.remove_all_actors() # Default : 20s before removing arrays assert len(ctx.dataArrayCache.keys()) == 5 # Force 0s for removing arrays ctx.checkForArraysToRelease(0) assert len(ctx.dataArrayCache.keys()) == 0 # Cleanup pane._cleanup(model) assert pane._contexts == {} assert pane._models == {}
def test_vtk_pane_from_renwin(document, comm, tmp_path): renWin = make_render_window() pane = VTK(renWin) # Create pane model = pane.get_root(document, comm=comm) assert isinstance(model, VTKPlot) assert pane._models[model.ref['id']][0] is model with BytesIO(base64.b64decode(model.data.encode())) as in_memory: with ZipFile(in_memory) as zf: filenames = zf.namelist() assert len(filenames) == 4 assert 'index.json' in filenames # Export Update and Read tmpfile = os.path.join(*tmp_path.joinpath('export.vtkjs').parts) pane.export_vtkjs(filename=tmpfile) with open(tmpfile, 'rb') as file_exported: pane.object = file_exported # Cleanup pane._cleanup(model) assert pane._models == {}