diff options
Diffstat (limited to 'silx/gui/data/test/test_dataviewer.py')
-rw-r--r-- | silx/gui/data/test/test_dataviewer.py | 87 |
1 files changed, 56 insertions, 31 deletions
diff --git a/silx/gui/data/test/test_dataviewer.py b/silx/gui/data/test/test_dataviewer.py index dd3114a..274df92 100644 --- a/silx/gui/data/test/test_dataviewer.py +++ b/silx/gui/data/test/test_dataviewer.py @@ -1,7 +1,7 @@ # coding: utf-8 # /*########################################################################## # -# Copyright (c) 2016-2017 European Synchrotron Radiation Facility +# Copyright (c) 2016-2018 European Synchrotron Radiation Facility # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -24,7 +24,7 @@ # ###########################################################################*/ __authors__ = ["V. Valls"] __license__ = "MIT" -__date__ = "22/08/2017" +__date__ = "22/02/2018" import os import tempfile @@ -67,7 +67,8 @@ class _DataViewMock(DataView): class AbstractDataViewerTests(TestCaseQt): def create_widget(self): - raise NotImplementedError() + # Avoid to raise an error when testing the full module + self.skipTest("Not implemented") @contextmanager def h5_temporary_file(self): @@ -89,7 +90,7 @@ class AbstractDataViewerTests(TestCaseQt): widget = self.create_widget() for data in data_list: widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) def test_plot_1d_data(self): data = numpy.arange(3 ** 1) @@ -97,35 +98,35 @@ class AbstractDataViewerTests(TestCaseQt): widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT1D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.PLOT1D_MODE, availableModes) - def test_plot_2d_data(self): + def test_image_data(self): data = numpy.arange(3 ** 2) data.shape = [3] * 2 widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT2D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.IMAGE_MODE, availableModes) - def test_plot_2d_bool(self): + def test_image_bool(self): data = numpy.zeros((10, 10), dtype=numpy.bool) data[::2, ::2] = True widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT2D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.IMAGE_MODE, availableModes) - def test_plot_2d_complex_data(self): + def test_image_complex_data(self): data = numpy.arange(3 ** 2, dtype=numpy.complex) data.shape = [3] * 2 widget = self.create_widget() widget.setData(data) availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) - self.assertIn(DataViewer.PLOT2D_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.IMAGE_MODE, availableModes) def test_plot_3d_data(self): data = numpy.arange(3 ** 3) @@ -135,38 +136,38 @@ class AbstractDataViewerTests(TestCaseQt): availableModes = set([v.modeId() for v in widget.currentAvailableViews()]) try: import silx.gui.plot3d # noqa - self.assertIn(DataViewer.PLOT3D_MODE, availableModes) + self.assertIn(DataViews.PLOT3D_MODE, availableModes) except ImportError: - self.assertIn(DataViewer.STACK_MODE, availableModes) - self.assertEqual(DataViewer.RAW_MODE, widget.displayMode()) + self.assertIn(DataViews.STACK_MODE, availableModes) + self.assertEqual(DataViews.RAW_MODE, widget.displayMode()) def test_array_1d_data(self): data = numpy.array(["aaa"] * (3 ** 1)) data.shape = [3] * 1 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_array_2d_data(self): data = numpy.array(["aaa"] * (3 ** 2)) data.shape = [3] * 2 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_array_4d_data(self): data = numpy.array(["aaa"] * (3 ** 4)) data.shape = [3] * 4 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_record_4d_data(self): data = numpy.zeros(3 ** 4, dtype='3int8, float32, (2,3)float64') data.shape = [3] * 4 widget = self.create_widget() widget.setData(data) - self.assertEqual(DataViewer.RAW_MODE, widget.displayedView().modeId()) + self.assertEqual(DataViews.RAW_MODE, widget.displayedView().modeId()) def test_3d_h5_dataset(self): if h5py is None: @@ -191,7 +192,7 @@ class AbstractDataViewerTests(TestCaseQt): widget.setData(10) widget.setData(None) modes = [v.modeId() for v in listener.arguments(argumentIndex=0)] - self.assertEquals(modes, [DataViewer.RAW_MODE, DataViewer.EMPTY_MODE]) + self.assertEquals(modes, [DataViews.RAW_MODE, DataViews.EMPTY_MODE]) listener.clear() def test_change_display_mode(self): @@ -199,14 +200,15 @@ class AbstractDataViewerTests(TestCaseQt): data.shape = [10] * 4 widget = self.create_widget() widget.setData(data) - widget.setDisplayMode(DataViewer.PLOT1D_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.PLOT1D_MODE) - widget.setDisplayMode(DataViewer.PLOT2D_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.PLOT2D_MODE) - widget.setDisplayMode(DataViewer.RAW_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.RAW_MODE) - widget.setDisplayMode(DataViewer.EMPTY_MODE) - self.assertEquals(widget.displayedView().modeId(), DataViewer.EMPTY_MODE) + widget.setDisplayMode(DataViews.PLOT1D_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.PLOT1D_MODE) + widget.setDisplayMode(DataViews.IMAGE_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.IMAGE_MODE) + widget.setDisplayMode(DataViews.RAW_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.RAW_MODE) + widget.setDisplayMode(DataViews.EMPTY_MODE) + self.assertEquals(widget.displayedView().modeId(), DataViews.EMPTY_MODE) + DataView._cleanUpCache() def test_create_default_views(self): widget = self.create_widget() @@ -228,6 +230,26 @@ class AbstractDataViewerTests(TestCaseQt): self.assertTrue(view not in widget.availableViews()) self.assertTrue(view not in widget.currentAvailableViews()) + def test_replace_view(self): + widget = self.create_widget() + view = _DataViewMock(widget) + widget.replaceView(DataViews.RAW_MODE, + view) + self.assertIsNone(widget.getViewFromModeId(DataViews.RAW_MODE)) + self.assertTrue(view in widget.availableViews()) + self.assertTrue(view in widget.currentAvailableViews()) + + def test_replace_view_in_composite(self): + # replace a view that is a child of a composite view + widget = self.create_widget() + view = _DataViewMock(widget) + widget.replaceView(DataViews.NXDATA_INVALID_MODE, + view) + nxdata_view = widget.getViewFromModeId(DataViews.NXDATA_MODE) + self.assertNotIn(DataViews.NXDATA_INVALID_MODE, + [v.modeId() for v in nxdata_view.availableViews()]) + self.assertTrue(view in nxdata_view.availableViews()) + class TestDataViewer(AbstractDataViewerTests): def create_widget(self): @@ -265,6 +287,7 @@ class TestDataView(TestCaseQt): dataViewClass = DataViews._Plot2dView widget = self.createDataViewWithData(dataViewClass, data[0]) self.qWaitForWindowExposed(widget) + DataView._cleanUpCache() def testCubeWithComplex(self): self.skipTest("OpenGL widget not yet tested") @@ -276,12 +299,14 @@ class TestDataView(TestCaseQt): dataViewClass = DataViews._Plot3dView widget = self.createDataViewWithData(dataViewClass, data) self.qWaitForWindowExposed(widget) + DataView._cleanUpCache() def testImageStackWithComplex(self): data = self.createComplexData() dataViewClass = DataViews._StackView widget = self.createDataViewWithData(dataViewClass, data) self.qWaitForWindowExposed(widget) + DataView._cleanUpCache() def suite(): |