summaryrefslogtreecommitdiff
path: root/silx/gui/data/test/test_dataviewer.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/gui/data/test/test_dataviewer.py')
-rw-r--r--silx/gui/data/test/test_dataviewer.py87
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():