def testGetEnvironmentDataWithNoExperimentMetadata(self): """Test environment route works when no experiment metadata exists.""" class FakeDataProvider(object): def data_location(self, experiment_id): del experiment_id # Unused. return "" def experiment_metadata(self, experiment_id): del experiment_id # Unused. return None self.context = base_plugin.TBContext( flags=FakeFlags(generic_data="true"), data_provider=FakeDataProvider(), ) self.plugin = core_plugin.CorePlugin(self.context) app = application.TensorBoardWSGI([self.plugin]) self.server = werkzeug_test.Client(app, wrappers.BaseResponse) parsed_object = self._get_json(self.server, "/data/environment") self.assertEqual(parsed_object["data_location"], "") self.assertEqual(parsed_object["window_title"], None) self.assertNotIn("experiment_name", parsed_object) self.assertNotIn("experiment_description", parsed_object) self.assertNotIn("creation_time", parsed_object)
def testPlugins_invalidType(self): plugin_instance = core_plugin.CorePlugin(base_plugin.TBContext()) with self.assertRaisesRegex(TypeError, "CorePlugin"): tb = program.TensorBoard( plugins=[plugin_instance], assets_zip_provider=fake_asset_provider, )
def testGetEnvironmentDataWithExperimentMetadata(self): """Test environment route returns correct metadata about experiment.""" class FakeDataProvider(object): def data_location(self, experiment_id): del experiment_id # Unused. return "" def experiment_metadata(self, experiment_id): del experiment_id # Unused. return provider.ExperimentMetadata( experiment_name="Experiment #5 (実験#5)", experiment_description="Take five (😊)", creation_time=1234.5, ) self.context = base_plugin.TBContext( flags=FakeFlags(generic_data="true"), data_provider=FakeDataProvider(), ) self.plugin = core_plugin.CorePlugin(self.context) app = application.TensorBoardWSGI([self.plugin]) self.server = werkzeug_test.Client(app, wrappers.BaseResponse) parsed_object = self._get_json(self.server, "/data/environment") self.assertEqual(parsed_object["data_location"], "") self.assertEqual(parsed_object["window_title"], None) self.assertEqual(parsed_object["experiment_name"], "Experiment #5 (実験#5)") self.assertEqual(parsed_object["experiment_description"], "Take five (😊)") self.assertEqual(parsed_object["creation_time"], 1234.5)
def set_up_db(self): self.db_path = os.path.join(self.get_temp_dir(), "db.db") self.db_uri = "sqlite:" + self.db_path db_connection_provider = application.create_sqlite_connection_provider( self.db_uri) context = base_plugin.TBContext( db_connection_provider=db_connection_provider, db_uri=self.db_uri) self.core_plugin = core_plugin.CorePlugin(context) self.plugin = scalars_plugin.ScalarsPlugin(context)
def setUp(self): super(CorePluginNoDataTest, self).setUp() context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), logdir=self.get_temp_dir(), multiplexer=event_multiplexer.EventMultiplexer(), window_title="title foo", ) self.plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([self.plugin]) self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
def _start_db_based_server(self): db_connection_provider = application.create_sqlite_connection_provider( self.db_uri) context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), db_connection_provider=db_connection_provider, db_uri=self.db_uri, window_title='title foo') self.db_based_plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([self.db_based_plugin]) self.db_based_server = werkzeug_test.Client(app, wrappers.BaseResponse)
def set_up_db(self): self.db_path = os.path.join(self.get_temp_dir(), 'db.db') self.db_uri = 'sqlite:' + self.db_path db_module, db_connection_provider = application.get_database_info( self.db_uri) context = base_plugin.TBContext( db_module=db_module, db_connection_provider=db_connection_provider, db_uri=self.db_uri) self.core_plugin = core_plugin.CorePlugin(context) self.plugin = scalars_plugin.ScalarsPlugin(context)
def _start_logdir_based_server(self, temp_dir): self.logdir = temp_dir self.multiplexer = event_multiplexer.EventMultiplexer( size_guidance=application.DEFAULT_SIZE_GUIDANCE, purge_orphaned_data=True) context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), logdir=self.logdir, multiplexer=self.multiplexer, window_title='title foo') self.logdir_based_plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([self.logdir_based_plugin]) self.logdir_based_server = werkzeug_test.Client(app, wrappers.BaseResponse)
def setUp(self): super(CorePluginResourceTest, self).setUp() self.logdir = self.get_temp_dir() self.multiplexer = event_multiplexer.EventMultiplexer() provider = data_provider.MultiplexerDataProvider( self.multiplexer, self.logdir) context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), logdir=self.logdir, data_provider=provider, ) self.plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([self.plugin]) self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
def setUp(self): super(CorePluginDbModeTest, self).setUp() self.db_path = os.path.join(self.get_temp_dir(), "db.db") self.db_uri = "sqlite:" + self.db_path db_connection_provider = application.create_sqlite_connection_provider( self.db_uri) context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), db_connection_provider=db_connection_provider, db_uri=self.db_uri, ) self.plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([self.plugin]) self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
def setUp(self): self.logdir = self.get_temp_dir() self.addCleanup(shutil.rmtree, self.logdir) self._generate_test_data(run_name='run1') self.multiplexer = event_multiplexer.EventMultiplexer( size_guidance=application.DEFAULT_SIZE_GUIDANCE, purge_orphaned_data=True) self._context = base_plugin.TBContext( assets_zip_provider=application.get_default_assets_zip_provider(), logdir=self.logdir, multiplexer=self.multiplexer) self.plugin = core_plugin.CorePlugin(self._context) app = application.TensorBoardWSGIApp( self.logdir, [self.plugin], self.multiplexer, 0) self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
def _send_request(self, path_prefix, pathname): multiplexer = event_multiplexer.EventMultiplexer() logdir = self.get_temp_dir() provider = data_provider.MultiplexerDataProvider(multiplexer, logdir) context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), logdir=logdir, data_provider=provider, window_title="", flags=FakeFlags(path_prefix=path_prefix), ) plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([plugin], path_prefix=path_prefix) server = werkzeug_test.Client(app, wrappers.BaseResponse) return server.get(pathname)
def testEnvironmentDebugOnExplicitly(self): multiplexer = event_multiplexer.EventMultiplexer() logdir = self.get_temp_dir() provider = data_provider.MultiplexerDataProvider(multiplexer, logdir) context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), logdir=logdir, data_provider=provider, window_title="title foo", ) plugin = core_plugin.CorePlugin(context, include_debug_info=True) app = application.TensorBoardWSGI([plugin]) server = werkzeug_test.Client(app, wrappers.BaseResponse) parsed_object = self._get_json(server, "/data/environment") self.assertIn("debug", parsed_object)
def startDbBasedServer(self, temp_dir): self.db_uri = 'sqlite:' + os.path.join(temp_dir, 'db.sqlite') db_module, db_connection_provider = application.get_database_info( self.db_uri) if db_connection_provider is not None: with contextlib.closing(db_connection_provider()) as db_conn: schema = db.Schema(db_conn) schema.create_tables() schema.create_indexes() context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), db_module=db_module, db_connection_provider=db_connection_provider, db_uri=self.db_uri, window_title='title foo') self.db_based_plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([self.db_based_plugin]) self.db_based_server = werkzeug_test.Client(app, wrappers.BaseResponse)
def setUp(self): super(CorePluginTestBase, self).setUp() self.logdir = self.get_temp_dir() self.multiplexer = self.create_multiplexer() db_uri = None db_connection_provider = None if isinstance(self.multiplexer, db_import_multiplexer.DbImportMultiplexer): db_uri = self.multiplexer.db_uri db_connection_provider = self.multiplexer.db_connection_provider context = base_plugin.TBContext( assets_zip_provider=get_test_assets_zip_provider(), logdir=self.logdir, multiplexer=self.multiplexer, db_uri=db_uri, db_connection_provider=db_connection_provider, ) self.plugin = core_plugin.CorePlugin(context) app = application.TensorBoardWSGI([self.plugin]) self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
def testGetEnvironmentDataWithDataLocationFallback(self): """Test environment route returns correct metadata about experiment.""" class FakeDataProvider(object): def data_location(self, ctx, *, experiment_id): del experiment_id # Unused. return "fallback (pick me)" def experiment_metadata(self, ctx, *, experiment_id): del experiment_id # Unused. # note: no data location provided return provider.ExperimentMetadata(experiment_name="name") self.context = base_plugin.TBContext( flags=FakeFlags(generic_data="true"), data_provider=FakeDataProvider(), ) self.plugin = core_plugin.CorePlugin(self.context) app = application.TensorBoardWSGI([self.plugin]) self.server = werkzeug_test.Client(app, wrappers.BaseResponse) parsed_object = self._get_json(self.server, "/data/environment") self.assertEqual(parsed_object["data_location"], "fallback (pick me)")
def testPlugins_invalidType(self): plugin_instance = core_plugin.CorePlugin(base_plugin.TBContext()) with six.assertRaisesRegex(self, TypeError, "CorePlugin"): tb = program.TensorBoard(plugins=[plugin_instance])