def testMarkerChanged(self): """Test sigItemChanged for markers""" self.plot.addMarker(10, 20, legend='test') marker = self.plot._getMarker('test') listener = SignalListener() marker.sigItemChanged.connect(listener) # Test signals in _BaseMarker marker.setPosition(10, 10) marker.setPosition(10, 10) # Not sending event marker.setText('toto') self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.POSITION, ItemChangedType.TEXT]) # XMarker self.plot.addXMarker(10, legend='x') marker = self.plot._getMarker('x') listener = SignalListener() marker.sigItemChanged.connect(listener) marker.setPosition(20, 20) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.POSITION]) # YMarker self.plot.addYMarker(10, legend='x') marker = self.plot._getMarker('x') listener = SignalListener() marker.sigItemChanged.connect(listener) marker.setPosition(20, 20) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.POSITION])
def testMarkerChanged(self): """Test sigItemChanged for markers""" self.plot.addMarker(10, 20, legend='test') marker = self.plot._getMarker('test') listener = SignalListener() marker.sigItemChanged.connect(listener) # Test signals in _BaseMarker marker.setPosition(10, 10) marker.setPosition(10, 10) # Not sending event marker.setText('toto') self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.POSITION, ItemChangedType.TEXT]) # XMarker self.plot.addXMarker(10, legend='x') marker = self.plot._getMarker('x') listener = SignalListener() marker.sigItemChanged.connect(listener) marker.setPosition(20, 20) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.POSITION]) # YMarker self.plot.addYMarker(10, legend='x') marker = self.plot._getMarker('x') listener = SignalListener() marker.sigItemChanged.connect(listener) marker.setPosition(20, 20) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.POSITION])
class TestHdf5TreeModelSignals(TestCaseQt): def setUp(self): TestCaseQt.setUp(self) self.model = hdf5.Hdf5TreeModel() filename = _tmpDirectory + "/data.h5" self.h5 = h5py.File(filename) self.model.insertH5pyObject(self.h5) self.listener = SignalListener() self.model.sigH5pyObjectLoaded.connect(self.listener.partial(signal="loaded")) self.model.sigH5pyObjectRemoved.connect(self.listener.partial(signal="removed")) self.model.sigH5pyObjectSynchronized.connect(self.listener.partial(signal="synchronized")) def tearDown(self): self.signals = None ref = weakref.ref(self.model) self.model = None self.qWaitForDestroy(ref) self.h5.close() self.h5 = None TestCaseQt.tearDown(self) def waitForPendingOperations(self, model): for _ in range(10): if not model.hasPendingOperations(): break self.qWait(10) else: raise RuntimeError("Still waiting for a pending operation") def testInsert(self): filename = _tmpDirectory + "/data.h5" h5 = h5py.File(filename) self.model.insertH5pyObject(h5) self.assertEquals(self.listener.callCount(), 0) def testLoaded(self): filename = _tmpDirectory + "/data.h5" self.model.insertFile(filename) self.assertEquals(self.listener.callCount(), 1) self.assertEquals(self.listener.karguments(argumentName="signal")[0], "loaded") self.assertIsNot(self.listener.arguments(callIndex=0)[0], self.h5) self.assertEquals(self.listener.arguments(callIndex=0)[0].filename, filename) def testRemoved(self): self.model.removeH5pyObject(self.h5) self.assertEquals(self.listener.callCount(), 1) self.assertEquals(self.listener.karguments(argumentName="signal")[0], "removed") self.assertIs(self.listener.arguments(callIndex=0)[0], self.h5) def testSynchonized(self): self.model.synchronizeH5pyObject(self.h5) self.waitForPendingOperations(self.model) self.assertEquals(self.listener.callCount(), 1) self.assertEquals(self.listener.karguments(argumentName="signal")[0], "synchronized") self.assertIs(self.listener.arguments(callIndex=0)[0], self.h5) self.assertIsNot(self.listener.arguments(callIndex=0)[1], self.h5)
def testImageDataChanged(self): """Test sigItemChanged for ImageData""" self.plot.addImage(numpy.arange(100).reshape(10, 10), legend='test') image = self.plot.getImage('test') listener = SignalListener() image.sigItemChanged.connect(listener) # ColormapMixIn colormap = self.plot.getDefaultColormap().copy() image.setColormap(colormap) image.getColormap().setName('viridis') # Test of signals in ImageBase class image.setOrigin(10) image.setScale(2) # Test of signals in ImageData class image.setData(numpy.ones((10, 10))) self.assertEqual(listener.arguments(argumentIndex=0), [ ItemChangedType.COLORMAP, ItemChangedType.COLORMAP, ItemChangedType.POSITION, ItemChangedType.SCALE, ItemChangedType.DATA ])
def testImageDataChanged(self): """Test sigItemChanged for ImageData""" self.plot.addImage(numpy.arange(100).reshape(10, 10), legend='test') image = self.plot.getImage('test') listener = SignalListener() image.sigItemChanged.connect(listener) # ColormapMixIn colormap = self.plot.getDefaultColormap().copy() image.setColormap(colormap) image.getColormap().setName('viridis') # Test of signals in ImageBase class image.setOrigin(10) image.setScale(2) # Test of signals in ImageData class image.setData(numpy.ones((10, 10))) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.COLORMAP, ItemChangedType.COLORMAP, ItemChangedType.POSITION, ItemChangedType.SCALE, ItemChangedType.DATA])
def test_display_mode_event(self): listener = SignalListener() widget = self.create_widget() widget.displayedViewChanged.connect(listener) 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]) listener.clear()
def test_display_mode_event(self): listener = SignalListener() widget = self.create_widget() widget.displayedViewChanged.connect(listener) widget.setData(10) widget.setData(None) modes = [v.modeId() for v in listener.arguments(argumentIndex=0)] self.assertEquals(modes, [DataViews.RAW_MODE, DataViews.EMPTY_MODE]) listener.clear()
def testStackFrameNumber(self): self.stackview.setStack(self.mystack) self.assertEqual(self.stackview.getFrameNumber(), 0) listener = SignalListener() self.stackview.sigFrameChanged.connect(listener) self.stackview.setFrameNumber(1) self.assertEqual(self.stackview.getFrameNumber(), 1) self.assertEqual(listener.arguments(), [(1, )])
def testStackFrameNumber(self): self.stackview.setStack(self.mystack) self.assertEqual(self.stackview.getFrameNumber(), 0) listener = SignalListener() self.stackview.sigFrameChanged.connect(listener) self.stackview.setFrameNumber(1) self.assertEqual(self.stackview.getFrameNumber(), 1) self.assertEqual(listener.arguments(), [(1,)])
def testImageRgbaChanged(self): """Test sigItemChanged for ImageRgba""" self.plot.addImage(numpy.ones((10, 10, 3)), legend='rgb') image = self.plot.getImage('rgb') listener = SignalListener() image.sigItemChanged.connect(listener) # Test of signals in ImageRgba class image.setData(numpy.zeros((10, 10, 3))) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.DATA])
def testImageRgbaChanged(self): """Test sigItemChanged for ImageRgba""" self.plot.addImage(numpy.ones((10, 10, 3)), legend='rgb') image = self.plot.getImage('rgb') listener = SignalListener() image.sigItemChanged.connect(listener) # Test of signals in ImageRgba class image.setData(numpy.zeros((10, 10, 3))) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.DATA])
def testHistogramChanged(self): """Test sigItemChanged for Histogram""" self.plot.addHistogram( numpy.arange(10), edges=numpy.arange(11), legend='test') histogram = self.plot.getHistogram('test') listener = SignalListener() histogram.sigItemChanged.connect(listener) # Test signals in Histogram class histogram.setData(numpy.zeros(10), numpy.arange(11)) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.DATA])
def testHistogramChanged(self): """Test sigItemChanged for Histogram""" self.plot.addHistogram(numpy.arange(10), edges=numpy.arange(11), legend='test') histogram = self.plot.getHistogram('test') listener = SignalListener() histogram.sigItemChanged.connect(listener) # Test signals in Histogram class histogram.setData(numpy.zeros(10), numpy.arange(11)) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.DATA])
def testShapeChanged(self): """Test sigItemChanged for shape""" data = numpy.array((1., 10.)) self.plot.addItem(data, data, legend='test', shape='rectangle') shape = self.plot._getItem(kind='item', legend='test') listener = SignalListener() shape.sigItemChanged.connect(listener) shape.setOverlay(True) shape.setPoints(((2., 2.), (3., 3.))) self.assertEqual(listener.arguments(), [(ItemChangedType.OVERLAY, ), (ItemChangedType.DATA, )])
def testCurveChanged(self): """Test sigItemChanged for curve""" self.plot.addCurve(numpy.arange(10), numpy.arange(10), legend='test') curve = self.plot.getCurve('test') listener = SignalListener() curve.sigItemChanged.connect(listener) # Test for signal in Item class curve.setVisible(False) curve.setVisible(True) curve.setZValue(100) # Test for signals in Points class curve.setData(numpy.arange(100), numpy.arange(100)) # SymbolMixIn curve.setSymbol('Circle') curve.setSymbol('d') curve.setSymbolSize(20) # AlphaMixIn curve.setAlpha(0.5) # Test for signals in Curve class # ColorMixIn curve.setColor('yellow') # YAxisMixIn curve.setYAxis('right') # FillMixIn curve.setFill(True) # LineMixIn curve.setLineStyle(':') curve.setLineStyle(':') # Not sending event curve.setLineWidth(2) self.assertEqual(listener.arguments(argumentIndex=0), [ItemChangedType.VISIBLE, ItemChangedType.VISIBLE, ItemChangedType.ZVALUE, ItemChangedType.DATA, ItemChangedType.SYMBOL, ItemChangedType.SYMBOL, ItemChangedType.SYMBOL_SIZE, ItemChangedType.ALPHA, ItemChangedType.COLOR, ItemChangedType.YAXIS, ItemChangedType.FILL, ItemChangedType.LINE_STYLE, ItemChangedType.LINE_WIDTH])
def testShapeChanged(self): """Test sigItemChanged for shape""" data = numpy.array((1., 10.)) self.plot.addItem(data, data, legend='test', shape='rectangle') shape = self.plot._getItem(kind='item', legend='test') listener = SignalListener() shape.sigItemChanged.connect(listener) shape.setOverlay(True) shape.setPoints(((2., 2.), (3., 3.))) self.assertEqual(listener.arguments(), [(ItemChangedType.OVERLAY,), (ItemChangedType.DATA,)])
def testScatterChanged(self): """Test sigItemChanged for scatter""" data = numpy.arange(10) self.plot.addScatter(data, data, data, legend='test') scatter = self.plot.getScatter('test') listener = SignalListener() scatter.sigItemChanged.connect(listener) # ColormapMixIn scatter.getColormap().setName('viridis') data2 = data + 10 # Test of signals in Scatter class scatter.setData(data2, data2, data2) self.assertEqual(listener.arguments(), [(ItemChangedType.COLORMAP, ), (ItemChangedType.DATA, )])
def testCurveChanged(self): """Test sigItemChanged for curve""" self.plot.addCurve(numpy.arange(10), numpy.arange(10), legend='test') curve = self.plot.getCurve('test') listener = SignalListener() curve.sigItemChanged.connect(listener) # Test for signal in Item class curve.setVisible(False) curve.setVisible(True) curve.setZValue(100) # Test for signals in Points class curve.setData(numpy.arange(100), numpy.arange(100)) # SymbolMixIn curve.setSymbol('o') curve.setSymbol('d') curve.setSymbolSize(20) # AlphaMixIn curve.setAlpha(0.5) # Test for signals in Curve class # ColorMixIn curve.setColor('yellow') # YAxisMixIn curve.setYAxis('right') # FillMixIn curve.setFill(True) # LineMixIn curve.setLineStyle(':') curve.setLineStyle(':') # Not sending event curve.setLineWidth(2) self.assertEqual(listener.arguments(argumentIndex=0), [ ItemChangedType.VISIBLE, ItemChangedType.VISIBLE, ItemChangedType.ZVALUE, ItemChangedType.DATA, ItemChangedType.SYMBOL, ItemChangedType.SYMBOL, ItemChangedType.SYMBOL_SIZE, ItemChangedType.ALPHA, ItemChangedType.COLOR, ItemChangedType.YAXIS, ItemChangedType.FILL, ItemChangedType.LINE_STYLE, ItemChangedType.LINE_WIDTH ])
def testScatterChanged(self): """Test sigItemChanged for scatter""" data = numpy.arange(10) self.plot.addScatter(data, data, data, legend='test') scatter = self.plot.getScatter('test') listener = SignalListener() scatter.sigItemChanged.connect(listener) # ColormapMixIn scatter.getColormap().setName('viridis') data2 = data + 10 # Test of signals in Scatter class scatter.setData(data2, data2, data2) self.assertEqual(listener.arguments(), [(ItemChangedType.COLORMAP,), (ItemChangedType.DATA,)])
class TestHdf5TreeModelSignals(TestCaseQt): def setUp(self): TestCaseQt.setUp(self) self.model = hdf5.Hdf5TreeModel() filename = _tmpDirectory + "/data.h5" self.h5 = h5py.File(filename) self.model.insertH5pyObject(self.h5) self.listener = SignalListener() self.model.sigH5pyObjectLoaded.connect( self.listener.partial(signal="loaded")) self.model.sigH5pyObjectRemoved.connect( self.listener.partial(signal="removed")) self.model.sigH5pyObjectSynchronized.connect( self.listener.partial(signal="synchronized")) def tearDown(self): self.signals = None ref = weakref.ref(self.model) self.model = None self.qWaitForDestroy(ref) self.h5.close() self.h5 = None TestCaseQt.tearDown(self) def waitForPendingOperations(self, model): for _ in range(10): if not model.hasPendingOperations(): break self.qWait(10) else: raise RuntimeError("Still waiting for a pending operation") def testInsert(self): filename = _tmpDirectory + "/data.h5" h5 = h5py.File(filename) self.model.insertH5pyObject(h5) self.assertEquals(self.listener.callCount(), 0) def testLoaded(self): filename = _tmpDirectory + "/data.h5" self.model.insertFile(filename) self.assertEquals(self.listener.callCount(), 1) self.assertEquals( self.listener.karguments(argumentName="signal")[0], "loaded") self.assertIsNot(self.listener.arguments(callIndex=0)[0], self.h5) self.assertEquals( self.listener.arguments(callIndex=0)[0].filename, filename) def testRemoved(self): self.model.removeH5pyObject(self.h5) self.assertEquals(self.listener.callCount(), 1) self.assertEquals( self.listener.karguments(argumentName="signal")[0], "removed") self.assertIs(self.listener.arguments(callIndex=0)[0], self.h5) def testSynchonized(self): self.model.synchronizeH5pyObject(self.h5) self.waitForPendingOperations(self.model) self.assertEquals(self.listener.callCount(), 1) self.assertEquals( self.listener.karguments(argumentName="signal")[0], "synchronized") self.assertIs(self.listener.arguments(callIndex=0)[0], self.h5) self.assertIsNot(self.listener.arguments(callIndex=0)[1], self.h5)