Skip to content

Commit bf22c49

Browse files
authored
core: re-enable CorePluginTest and consolidate test cases (#4878)
* core: re-enable CorePluginTest * core: fold CorePluginResourceTest into CorePluginNoDataTest * core: fold CorePluginExperimentMetadataTest into CorePluginNoDataTest * core: consolidate CorePluginNoDataTest and CorePluginTest into one
1 parent 73f1467 commit bf22c49

File tree

1 file changed

+55
-112
lines changed

1 file changed

+55
-112
lines changed

tensorboard/plugins/core/core_plugin_test.py

Lines changed: 55 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -130,22 +130,31 @@ def testPathPrefix_mustStartWithSlash(self):
130130
self.assertIn(repr("noslash"), msg)
131131

132132

133-
class CorePluginNoDataTest(tf.test.TestCase):
133+
class CorePluginTest(tf.test.TestCase):
134134
def setUp(self):
135-
super(CorePluginNoDataTest, self).setUp()
136-
multiplexer = event_multiplexer.EventMultiplexer()
137-
logdir = self.get_temp_dir()
138-
provider = data_provider.MultiplexerDataProvider(multiplexer, logdir)
135+
super().setUp()
136+
self.multiplexer = event_multiplexer.EventMultiplexer()
137+
self.logdir = self.get_temp_dir()
138+
provider = data_provider.MultiplexerDataProvider(
139+
self.multiplexer, self.logdir
140+
)
139141
context = base_plugin.TBContext(
140142
assets_zip_provider=get_test_assets_zip_provider(),
141-
logdir=logdir,
143+
logdir=self.logdir,
142144
data_provider=provider,
143145
window_title="title foo",
144146
)
145147
self.plugin = core_plugin.CorePlugin(context)
146148
app = application.TensorBoardWSGI([self.plugin])
147149
self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
148150

151+
def _add_run(self, run_name):
152+
run_path = os.path.join(self.logdir, run_name)
153+
with test_util.FileWriter(run_path) as writer:
154+
writer.add_test_summary("foo")
155+
self.multiplexer.AddRunsFromDirectory(self.logdir)
156+
self.multiplexer.Reload()
157+
149158
def _get_json(self, server, path):
150159
response = server.get(path)
151160
self.assertEqual(200, response.status_code)
@@ -172,6 +181,27 @@ def testIndex_returnsActualHtml(self):
172181
+ FAKE_INDEX_HTML,
173182
)
174183

184+
def test_js_no_cache(self):
185+
response = self.server.get("/index.js?foo=bar")
186+
self.assertEqual(200, response.status_code)
187+
self.assertEqual(
188+
NO_CACHE_CONTROL_VALUE, response.headers.get("Cache-Control")
189+
)
190+
191+
def test_js_cache(self):
192+
response = self.server.get("/index.js?_file_hash=meow")
193+
self.assertEqual(200, response.status_code)
194+
self.assertEqual(
195+
ONE_DAY_CACHE_CONTROL_VALUE, response.headers.get("Cache-Control")
196+
)
197+
198+
def test_html_no_cache(self):
199+
response = self.server.get("/index.html?_file_hash=meow")
200+
self.assertEqual(200, response.status_code)
201+
self.assertEqual(
202+
NO_CACHE_CONTROL_VALUE, response.headers.get("Cache-Control")
203+
)
204+
175205
def testDataPaths_disableAllCaching(self):
176206
"""Test the format of the /data/runs endpoint."""
177207
for path in ("/data/runs", "/data/logdir"):
@@ -190,45 +220,7 @@ def testEnvironmentForLogdir(self):
190220
parsed_object = self._get_json(self.server, "/data/environment")
191221
self.assertEqual(parsed_object["data_location"], self.get_temp_dir())
192222

193-
def testEnvironmentDebugOffByDefault(self):
194-
parsed_object = self._get_json(self.server, "/data/environment")
195-
self.assertNotIn("debug", parsed_object)
196-
197-
def testEnvironmentDebugOnExplicitly(self):
198-
multiplexer = event_multiplexer.EventMultiplexer()
199-
logdir = self.get_temp_dir()
200-
provider = data_provider.MultiplexerDataProvider(multiplexer, logdir)
201-
context = base_plugin.TBContext(
202-
assets_zip_provider=get_test_assets_zip_provider(),
203-
logdir=logdir,
204-
data_provider=provider,
205-
window_title="title foo",
206-
)
207-
plugin = core_plugin.CorePlugin(context, include_debug_info=True)
208-
app = application.TensorBoardWSGI([plugin])
209-
server = werkzeug_test.Client(app, wrappers.BaseResponse)
210-
211-
parsed_object = self._get_json(server, "/data/environment")
212-
self.assertIn("debug", parsed_object)
213-
214-
def testLogdir(self):
215-
"""Test the format of the data/logdir endpoint."""
216-
parsed_object = self._get_json(self.server, "/data/logdir")
217-
self.assertEqual(parsed_object, {"logdir": self.get_temp_dir()})
218-
219-
220-
class CorePluginExperimentMetadataTest(tf.test.TestCase):
221-
def _get_json(self, server, path):
222-
response = server.get(path)
223-
self.assertEqual(200, response.status_code)
224-
self.assertEqual(
225-
"application/json", response.headers.get("Content-Type")
226-
)
227-
return json.loads(response.get_data().decode("utf-8"))
228-
229-
def testGetEnvironmentDataWithExperimentMetadata(self):
230-
"""Test environment route returns correct metadata about experiment."""
231-
223+
def testEnvironmentWithExperimentMetadata(self):
232224
class FakeDataProvider(object):
233225
def experiment_metadata(self, ctx, *, experiment_id):
234226
del experiment_id # Unused.
@@ -259,41 +251,31 @@ def experiment_metadata(self, ctx, *, experiment_id):
259251
)
260252
self.assertEqual(parsed_object["creation_time"], 1234.5)
261253

254+
def testEnvironmentDebugOffByDefault(self):
255+
parsed_object = self._get_json(self.server, "/data/environment")
256+
self.assertNotIn("debug", parsed_object)
262257

263-
class CorePluginTestBase(object):
264-
def setUp(self):
265-
super(CorePluginTestBase, self).setUp()
266-
self.logdir = self.get_temp_dir()
267-
self.multiplexer = event_multiplexer.EventMultiplexer()
268-
provider = data_provider.MultiplexerDataProvider(
269-
self.multiplexer, self.logdir
270-
)
258+
def testEnvironmentDebugOnExplicitly(self):
259+
multiplexer = event_multiplexer.EventMultiplexer()
260+
logdir = self.get_temp_dir()
261+
provider = data_provider.MultiplexerDataProvider(multiplexer, logdir)
271262
context = base_plugin.TBContext(
272263
assets_zip_provider=get_test_assets_zip_provider(),
273-
logdir=self.logdir,
264+
logdir=logdir,
274265
data_provider=provider,
266+
window_title="title foo",
275267
)
276-
self.plugin = core_plugin.CorePlugin(context)
277-
app = application.TensorBoardWSGI([self.plugin])
278-
self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
279-
280-
def create_multiplexer(self):
281-
raise NotImplementedError()
268+
plugin = core_plugin.CorePlugin(context, include_debug_info=True)
269+
app = application.TensorBoardWSGI([plugin])
270+
server = werkzeug_test.Client(app, wrappers.BaseResponse)
282271

283-
def _add_run(self, run_name):
284-
run_path = os.path.join(self.logdir, run_name)
285-
with test_util.FileWriter(run_path) as writer:
286-
writer.add_test_summary("foo")
287-
self.multiplexer.AddRunsFromDirectory(self.logdir)
288-
self.multiplexer.Reload()
272+
parsed_object = self._get_json(server, "/data/environment")
273+
self.assertIn("debug", parsed_object)
289274

290-
def _get_json(self, server, path):
291-
response = server.get(path)
292-
self.assertEqual(200, response.status_code)
293-
self.assertEqual(
294-
"application/json", response.headers.get("Content-Type")
295-
)
296-
return json.loads(response.get_data().decode("utf-8"))
275+
def testLogdir(self):
276+
"""Test the format of the data/logdir endpoint."""
277+
parsed_object = self._get_json(self.server, "/data/logdir")
278+
self.assertEqual(parsed_object, {"logdir": self.get_temp_dir()})
297279

298280
def testRuns(self):
299281
"""Test the format of the /data/runs endpoint."""
@@ -374,45 +356,6 @@ def testNotifications(self):
374356
self.assertEqual(notifications_json, {"notifications": []})
375357

376358

377-
class CorePluginResourceTest(tf.test.TestCase):
378-
def setUp(self):
379-
super(CorePluginResourceTest, self).setUp()
380-
self.logdir = self.get_temp_dir()
381-
self.multiplexer = event_multiplexer.EventMultiplexer()
382-
provider = data_provider.MultiplexerDataProvider(
383-
self.multiplexer, self.logdir
384-
)
385-
context = base_plugin.TBContext(
386-
assets_zip_provider=get_test_assets_zip_provider(),
387-
logdir=self.logdir,
388-
data_provider=provider,
389-
)
390-
self.plugin = core_plugin.CorePlugin(context)
391-
app = application.TensorBoardWSGI([self.plugin])
392-
self.server = werkzeug_test.Client(app, wrappers.BaseResponse)
393-
394-
def test_js_no_cache(self):
395-
response = self.server.get("/index.js?foo=bar")
396-
self.assertEqual(200, response.status_code)
397-
self.assertEqual(
398-
NO_CACHE_CONTROL_VALUE, response.headers.get("Cache-Control")
399-
)
400-
401-
def test_js_cache(self):
402-
response = self.server.get("/index.js?_file_hash=meow")
403-
self.assertEqual(200, response.status_code)
404-
self.assertEqual(
405-
ONE_DAY_CACHE_CONTROL_VALUE, response.headers.get("Cache-Control")
406-
)
407-
408-
def test_html_no_cache(self):
409-
response = self.server.get("/index.html?_file_hash=meow")
410-
self.assertEqual(200, response.status_code)
411-
self.assertEqual(
412-
NO_CACHE_CONTROL_VALUE, response.headers.get("Cache-Control")
413-
)
414-
415-
416359
class CorePluginPathPrefixTest(tf.test.TestCase):
417360
def _send_request(self, path_prefix, pathname):
418361
multiplexer = event_multiplexer.EventMultiplexer()

0 commit comments

Comments
 (0)