diff options
author | Alexandre Marie <alexandre.marie@synchrotron-soleil.fr> | 2020-07-21 14:45:14 +0200 |
---|---|---|
committer | Alexandre Marie <alexandre.marie@synchrotron-soleil.fr> | 2020-07-21 14:45:14 +0200 |
commit | 328032e2317e3ac4859196bbf12bdb71795302fe (patch) | |
tree | 8cd13462beab109e3cb53410c42335b6d1e00ee6 /silx/gui/dialog/test/test_colormapdialog.py | |
parent | 33ed2a64c92b0311ae35456c016eb284e426afc2 (diff) |
New upstream version 0.13.0+dfsg
Diffstat (limited to 'silx/gui/dialog/test/test_colormapdialog.py')
-rw-r--r-- | silx/gui/dialog/test/test_colormapdialog.py | 101 |
1 files changed, 88 insertions, 13 deletions
diff --git a/silx/gui/dialog/test/test_colormapdialog.py b/silx/gui/dialog/test/test_colormapdialog.py index 8dad196..8efe8bc 100644 --- a/silx/gui/dialog/test/test_colormapdialog.py +++ b/silx/gui/dialog/test/test_colormapdialog.py @@ -1,7 +1,7 @@ # coding: utf-8 # /*########################################################################## # -# Copyright (c) 2016-2019 European Synchrotron Radiation Facility +# Copyright (c) 2016-2020 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 @@ -37,6 +37,7 @@ from silx.gui.utils.testutils import TestCaseQt from silx.gui.colors import Colormap, preferredColormaps from silx.utils.testutils import ParametricTestCase from silx.gui.plot.PlotWindow import PlotWindow +from silx.gui.plot.items.image import ImageData import numpy.random @@ -50,10 +51,16 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): normalization='linear') self.colormapDiag = ColormapDialog.ColormapDialog() - self.colormapDiag.setAttribute(qt.Qt.WA_DeleteOnClose) def tearDown(self): - del self.colormapDiag + self.qapp.processEvents() + colormapDiag = self.colormapDiag + self.colormapDiag = None + if colormapDiag is not None: + colormapDiag.close() + colormapDiag.deleteLater() + colormapDiag = None + self.qapp.processEvents() ParametricTestCase.tearDown(self) TestCaseQt.tearDown(self) @@ -66,9 +73,11 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): colormapDiag2.show() self.colormapDiag.setColormap(self.colormap) self.colormapDiag.show() + self.qapp.processEvents() self.colormapDiag._comboBoxColormap._setCurrentName('red') - self.colormapDiag._normButtonLog.click() + self.colormapDiag._comboBoxNormalization.setCurrentIndex( + self.colormapDiag._comboBoxNormalization.findData(Colormap.LOGARITHM)) self.assertTrue(self.colormap.getName() == 'red') self.assertTrue(self.colormapDiag.getColormap().getName() == 'red') self.assertTrue(self.colormap.getNormalization() == 'log') @@ -76,7 +85,8 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): self.assertTrue(self.colormap.getVMax() == 20) # checked second colormap dialog self.assertTrue(colormapDiag2._comboBoxColormap.getCurrentName() == 'red') - self.assertTrue(colormapDiag2._normButtonLog.isChecked()) + self.assertEqual(colormapDiag2._comboBoxNormalization.currentData(), + Colormap.LOGARITHM) self.assertTrue(int(colormapDiag2._minValue.getValue()) == 10) self.assertTrue(int(colormapDiag2._maxValue.getValue()) == 20) colormapDiag2.close() @@ -86,6 +96,7 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): assert self.colormap.isAutoscale() is False self.colormapDiag.setModal(True) self.colormapDiag.show() + self.qapp.processEvents() self.colormapDiag.setColormap(self.colormap) self.assertTrue(self.colormap.getVMin() is not None) self.colormapDiag._minValue.setValue(None) @@ -104,6 +115,7 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): assert self.colormap.isAutoscale() is False self.colormapDiag.setModal(True) self.colormapDiag.show() + self.qapp.processEvents() self.colormapDiag.setColormap(self.colormap) self.assertTrue(self.colormap.getVMin() is not None) self.colormapDiag._minValue.setValue(None) @@ -118,6 +130,7 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): assert self.colormap.isAutoscale() is False self.colormapDiag.setModal(False) self.colormapDiag.show() + self.qapp.processEvents() self.colormapDiag.setColormap(self.colormap) self.assertTrue(self.colormap.getVMin() is not None) self.colormapDiag._minValue.setValue(None) @@ -132,6 +145,7 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): assert self.colormap.isAutoscale() is False self.colormapDiag.setModal(False) self.colormapDiag.show() + self.qapp.processEvents() self.colormapDiag.setColormap(self.colormap) self.assertTrue(self.colormap.getVMin() is not None) self.colormapDiag._minValue.setValue(None) @@ -147,17 +161,20 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): """Make sure the colormap is modify if go through reject""" assert self.colormap.isAutoscale() is False self.colormapDiag.show() + self.qapp.processEvents() self.colormapDiag.setColormap(self.colormap) self.assertTrue(self.colormap.getVMin() is not None) self.colormapDiag._minValue.setValue(None) self.assertTrue(self.colormap.getVMin() is None) self.colormapDiag.close() + self.qapp.processEvents() self.assertTrue(self.colormap.getVMin() is None) def testSetColormapIsCorrect(self): """Make sure the interface fir the colormap when set a new colormap""" self.colormap.setName('red') self.colormapDiag.show() + self.qapp.processEvents() for norm in (Colormap.NORMALIZATIONS): for autoscale in (True, False): if autoscale is True: @@ -167,8 +184,8 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): self.colormap.setNormalization(norm) with self.subTest(colormap=self.colormap): self.colormapDiag.setColormap(self.colormap) - self.assertTrue( - self.colormapDiag._normButtonLinear.isChecked() == (norm is Colormap.LINEAR)) + self.assertEqual( + self.colormapDiag._comboBoxNormalization.currentData(), norm) self.assertTrue( self.colormapDiag._comboBoxColormap.getCurrentName() == 'red') self.assertTrue( @@ -189,6 +206,7 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): we make sure the colormap is still running and nothing more""" self.colormapDiag.setColormap(self.colormap) self.colormapDiag.show() + self.qapp.processEvents() del self.colormap self.assertTrue(self.colormapDiag.getColormap() is None) self.colormapDiag._comboBoxColormap._setCurrentName('blue') @@ -198,12 +216,14 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): outside""" self.colormapDiag.setColormap(self.colormap) self.colormapDiag.show() + self.qapp.processEvents() self.colormap.setName('red') self.assertTrue( self.colormapDiag._comboBoxColormap.getCurrentName() == 'red') self.colormap.setNormalization(Colormap.LOGARITHM) - self.assertFalse(self.colormapDiag._normButtonLinear.isChecked()) + self.assertEqual(self.colormapDiag._comboBoxNormalization.currentData(), + Colormap.LOGARITHM) self.colormap.setVRange(11, 201) self.assertTrue(self.colormapDiag._minValue.getValue() == 11) self.assertTrue(self.colormapDiag._maxValue.getValue() == 201) @@ -251,11 +271,12 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): colormap = Colormap(name=colormapName) self.colormapDiag.setColormap(colormap) self.colormapDiag.show() + self.qapp.processEvents() cb = self.colormapDiag._comboBoxColormap self.assertTrue(cb.getCurrentName() == colormapName) cb.setCurrentIndex(0) index = cb.findLutName(colormapName) - assert index is not 0 # if 0 then the rest of the test has no sense + assert index != 0 # if 0 then the rest of the test has no sense cb.setCurrentIndex(index) self.assertTrue(cb.getCurrentName() == colormapName) @@ -264,6 +285,7 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): colormap editable status""" colormap = Colormap(normalization='linear', vmin=1.0, vmax=10.0) self.colormapDiag.show() + self.qapp.processEvents() self.colormapDiag.setColormap(colormap) for editable in (True, False): with self.subTest(editable=editable): @@ -275,15 +297,14 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): self.assertTrue( self.colormapDiag._maxValue.isEnabled() is editable) self.assertTrue( - self.colormapDiag._normButtonLinear.isEnabled() is editable) - self.assertTrue( - self.colormapDiag._normButtonLog.isEnabled() is editable) + self.colormapDiag._comboBoxNormalization.isEnabled() is editable) # Make sure the reset button is also set to enable when edition mode is # False self.colormapDiag.setModal(False) colormap.setEditable(True) - self.colormapDiag._normButtonLog.click() + self.colormapDiag._comboBoxNormalization.setCurrentIndex( + self.colormapDiag._comboBoxNormalization.findData(Colormap.LOGARITHM)) resetButton = self.colormapDiag._buttonsNonModal.button(qt.QDialogButtonBox.Reset) self.assertTrue(resetButton.isEnabled()) colormap.setEditable(False) @@ -302,6 +323,60 @@ class TestColormapDialog(TestCaseQt, ParametricTestCase): self.colormapDiag.setData(data) self.colormapDiag.setData(None) + def testImageItem(self): + """Check that an ImageData plot item can be used""" + dialog = self.colormapDiag + colormap = Colormap(name='gray', vmin=None, vmax=None) + data = numpy.arange(3**2).reshape(3, 3) + item = ImageData() + item.setData(data, copy=False) + + dialog.setColormap(colormap) + dialog.show() + self.qapp.processEvents() + dialog.setItem(item) + vrange = dialog._getFiniteColormapRange() + self.assertEqual(vrange, (0, 8)) + + def testItemDel(self): + """Check that the plot items are not hard linked to the dialog""" + dialog = self.colormapDiag + colormap = Colormap(name='gray', vmin=None, vmax=None) + data = numpy.arange(3**2).reshape(3, 3) + item = ImageData() + item.setData(data, copy=False) + + dialog.setColormap(colormap) + dialog.show() + self.qapp.processEvents() + dialog.setItem(item) + previousRange = dialog._getFiniteColormapRange() + del item + vrange = dialog._getFiniteColormapRange() + self.assertNotEqual(vrange, previousRange) + + def testDataDel(self): + """Check that the data are not hard linked to the dialog""" + dialog = self.colormapDiag + colormap = Colormap(name='gray', vmin=None, vmax=None) + data = numpy.arange(5) + + dialog.setColormap(colormap) + dialog.show() + self.qapp.processEvents() + dialog.setData(data) + previousRange = dialog._getFiniteColormapRange() + del data + vrange = dialog._getFiniteColormapRange() + self.assertNotEqual(vrange, previousRange) + + def testDeleteWhileExec(self): + colormapDiag = self.colormapDiag + self.colormapDiag = None + qt.QTimer.singleShot(1000, colormapDiag.deleteLater) + result = colormapDiag.exec_() + self.assertEqual(result, 0) + class TestColormapAction(TestCaseQt): def setUp(self): |