summaryrefslogtreecommitdiff
path: root/silx/gui/dialog/test/test_colormapdialog.py
diff options
context:
space:
mode:
authorAlexandre Marie <alexandre.marie@synchrotron-soleil.fr>2020-07-21 14:45:14 +0200
committerAlexandre Marie <alexandre.marie@synchrotron-soleil.fr>2020-07-21 14:45:14 +0200
commit328032e2317e3ac4859196bbf12bdb71795302fe (patch)
tree8cd13462beab109e3cb53410c42335b6d1e00ee6 /silx/gui/dialog/test/test_colormapdialog.py
parent33ed2a64c92b0311ae35456c016eb284e426afc2 (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.py101
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):