diff options
Diffstat (limited to 'silx/gui/plot/test/testPlotWindow.py')
-rw-r--r-- | silx/gui/plot/test/testPlotWindow.py | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/silx/gui/plot/test/testPlotWindow.py b/silx/gui/plot/test/testPlotWindow.py index 0a7d108..8e7b35c 100644 --- a/silx/gui/plot/test/testPlotWindow.py +++ b/silx/gui/plot/test/testPlotWindow.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 @@ -29,13 +29,14 @@ __license__ = "MIT" __date__ = "27/06/2017" -import doctest import unittest +import numpy from silx.gui.utils.testutils import TestCaseQt, getQToolButtonFromAction from silx.gui import qt from silx.gui.plot import PlotWindow +from silx.gui.colors import Colormap class TestPlotWindow(TestCaseQt): @@ -85,6 +86,29 @@ class TestPlotWindow(TestCaseQt): self.assertIsNot(toolButton, None) self.mouseClick(toolButton, qt.Qt.LeftButton) + def testDockWidgets(self): + """Test add/remove dock widgets""" + dock1 = qt.QDockWidget('Test 1') + dock1.setWidget(qt.QLabel('Test 1')) + + self.plot.addTabbedDockWidget(dock1) + self.qapp.processEvents() + + self.plot.removeDockWidget(dock1) + self.qapp.processEvents() + + dock2 = qt.QDockWidget('Test 2') + dock2.setWidget(qt.QLabel('Test 2')) + + self.plot.addTabbedDockWidget(dock2) + self.qapp.processEvents() + + if qt.BINDING != 'PySide2': + # Weird bug with PySide2 later upon gc.collect() when getting the layout + self.assertNotEqual(self.plot.layout().indexOf(dock2), + -1, + "dock2 not properly displayed") + def testToolAspectRatio(self): self.plot.toolBar() self.plot.keepDataAspectRatioButton.keepDataAspectRatio() @@ -99,6 +123,37 @@ class TestPlotWindow(TestCaseQt): self.plot.yAxisInvertedButton.setYAxisDownward() self.assertTrue(self.plot.getYAxis().isInverted()) + def testColormapAutoscaleCache(self): + # Test that the min/max cache is not computed twice + + old = Colormap._computeAutoscaleRange + self._count = 0 + def _computeAutoscaleRange(colormap, data): + self._count = self._count + 1 + return 10, 20 + Colormap._computeAutoscaleRange = _computeAutoscaleRange + try: + colormap = Colormap(name='red') + self.plot.setVisible(True) + + # Add an image + data = numpy.arange(8**2).reshape(8, 8) + self.plot.addImage(data, legend="foo", colormap=colormap) + self.plot.setActiveImage("foo") + + # Use the colorbar + self.plot.getColorBarWidget().setVisible(True) + self.qWait(50) + + # Remove and add again the same item + image = self.plot.getImage("foo") + self.plot.removeImage("foo") + self.plot.addItem(image) + self.qWait(50) + finally: + Colormap._computeAutoscaleRange = old + self.assertEqual(self._count, 1) + del self._count def suite(): test_suite = unittest.TestSuite() |