diff --git a/glue_wwt/viewer/tests/test_wwt_widget.py b/glue_wwt/viewer/tests/test_wwt_widget.py index 77f3afcc..654fa6d6 100644 --- a/glue_wwt/viewer/tests/test_wwt_widget.py +++ b/glue_wwt/viewer/tests/test_wwt_widget.py @@ -154,7 +154,7 @@ def test_remove_layer(self): assert subset_layer.wwt_layer is None # @pytest.mark.skipif(sys.platform == 'win32', reason="Test causes issues on Windows") - @pytest.mark.xfail(reason="'asynchronous' keyword unsupported by some JavaScript versions") + # @pytest.mark.xfail(reason="'asynchronous' keyword unsupported by some JavaScript versions") def test_save_tour(self, tmpdir): filename = tmpdir.join('mytour.wtt').strpath diff --git a/glue_wwt/viewer/tools.py b/glue_wwt/viewer/tools.py index c69b6584..7c568b13 100644 --- a/glue_wwt/viewer/tools.py +++ b/glue_wwt/viewer/tools.py @@ -83,22 +83,19 @@ def activate(self): if not filename.endswith('.wtt'): filename = filename + '.wtt' - self.viewer._wwt.widget.page.runJavaScript("tourxml = '';", asynchronous=False) - tourxml = self.viewer._wwt.widget.page.runJavaScript('tourxml;', asynchronous=False) + self.viewer._wwt.widget.page.runJavaScript("tourxml = '';") + tourxml = self.viewer._wwt.widget.page.runJavaScript('tourxml;') self.viewer._wwt.widget.page.runJavaScript(SAVE_TOUR_CODE) - start = time.time() tourxml = None - while time.time() - start < 10: - time.sleep(0.1) - app.processEvents() - tourxml = self.viewer._wwt.widget.page.runJavaScript('tourxml;', asynchronous=False) - if tourxml: - break + time.sleep(1) + app.processEvents() + time.sleep(1) + tourxml = self.viewer._wwt.widget.page.runJavaScript('tourxml;') if not tourxml: - raise Exception("Failed to save tour") + raise ChildProcessError(f"Failed to save tour: {tourxml}") # Patch the altUnit so that it is correct for the Windows client (since # the web client currently has other bugs with relation to loading tours).