class FlowchartNodesTest(unittest.TestCase): '''Test different nodes in PyGWA GUI''' def setUp(self): '''Create the GUI''' self.form = MainWindow() self.form._unittestmode = True self.fc = self.form.fc self.nodeTypes = self.form.uiData.fclib().getNodeList() def tearDown(self): plt.close('all') self.form.close() del self.form if log: print('') def readXLS(self, path=None): ''' Read XLS and return the node''' if path is None: # now set test_data file path = projectPath('../TUTORIALS/test_data.xlsx') n = self.fc.createNode('readXLS', pos=(0, 0)) p = n.ctrlWidget().param #alias to method p('Select File').setValue(path) #set some params... p('Parameters', 'skiprows').setValue(0) p('Parameters', 'skip_footer').setValue(0) p('Parameters', 'na_values').setValue(u'---') #load data p('Load File').activate() return n def test_01_init(self): '''Test the GUI in its default state by initializing it''' print ('sys.argv = ', sys.argv) def test_02_add_nodes(self): ''' Test GUI by adding number of nodes''' for nodeType in self.nodeTypes: if log: print ('\tadding node `{0}`...'.format(nodeType), end='') self.fc.createNode(nodeType, pos=(0, 0)) if log: print ('ok') def test_03_node_readXLS(self): ''' Add Node `readXLS`, load data''' self.readXLS() def test_04_node_QuickView(self): ''' Connect node QuickView to readXLS and view data''' readXLS = self.readXLS() QuickView = self.fc.createNode('QuickView', pos=(0, 0)) self.fc.connectTerminals(readXLS['output'], QuickView['In']) QTest.mouseClick(QuickView.ctrlWidget().pushButton_viewTable, Qt.LeftButton) #QuickView.ctrlWidget().twWindow.close() QTest.mouseClick(QuickView.ctrlWidget().pushButton_viewPlot, Qt.LeftButton) def test_05_node_TimeseriesPlot(self): ''' Load data, create two curves with node `makeTimeseriesCurve` and plot them with node `TimeseriesPlot`''' readXLS = self.readXLS() curve1 = self.fc.createNode('makeTimeseriesCurve', pos=(0, 0)) curve2 = self.fc.createNode('makeTimeseriesCurve', pos=(0, 0)) plotNode = self.fc.createNode('TimeseriesPlot', pos=(0, 0)) self.fc.connectTerminals(readXLS['output'], curve1['df']) self.fc.connectTerminals(readXLS['output'], curve2['df']) curve1.ctrlWidget().p.param('Y:signal').setValue(u'River') curve1.ctrlWidget().p.param('tz correct').setValue(1.2) self.fc.connectTerminals(curve1['Curve'], plotNode['Curves']) self.fc.connectTerminals(curve2['Curve'], plotNode['Curves']) plotNode.ctrlWidget().p.param('Y:Label').setValue('test label') plotNode.ctrlWidget().p.param('Y:Units').setValue('test units') plotNode.ctrlWidget().p.param('Crosshair').setValue(True) plotNode.ctrlWidget().p.param('Data Points').setValue(True) plotNode.ctrlWidget().p.param('Plot').activate() def test_06_node_StatisticalAnalysis(self): ''' Load data, perform stat analysis''' readXLS = self.readXLS() statAnalysis = self.fc.createNode('Plot Histogram', pos=(0, 0)) self.fc.connectTerminals(readXLS['output'], statAnalysis['In']) statAnalysis.ctrlWidget().p.param('Signal').setValue('GW_2') statAnalysis.ctrlWidget().p.param('Signal Units').setValue('test units') statAnalysis.ctrlWidget().p.param('Histogram Type').setValue('Normalized') statAnalysis.ctrlWidget().p.param('Bins').setValue(15) statAnalysis.ctrlWidget().p.param('Plot').activate()
class FlowchartNodesTest(unittest.TestCase): '''Test different nodes in PyGWA GUI''' def setUp(self): '''Create the GUI''' self.form = MainWindow() self.form._unittestmode = True self.fc = self.form.fc self.nodeTypes = self.form.uiData.fclib().getNodeList() def tearDown(self): plt.close('all') self.form.close() del self.form if log: print('') def readXLS(self, path=None): ''' Read XLS and return the node''' if path is None: # now set test_data file path = projectPath('../TUTORIALS/test_data.xlsx') n = self.fc.createNode('readXLS', pos=(0, 0)) p = n.ctrlWidget().param #alias to method p('Select File').setValue(path) #set some params... p('Parameters', 'skiprows').setValue(0) p('Parameters', 'skip_footer').setValue(0) p('Parameters', 'na_values').setValue(u'---') #load data p('Load File').activate() return n def test_01_init(self): '''Test the GUI in its default state by initializing it''' print('sys.argv = ', sys.argv) def test_02_add_nodes(self): ''' Test GUI by adding number of nodes''' for nodeType in self.nodeTypes: if log: print('\tadding node `{0}`...'.format(nodeType), end='') self.fc.createNode(nodeType, pos=(0, 0)) if log: print('ok') def test_03_node_readXLS(self): ''' Add Node `readXLS`, load data''' self.readXLS() def test_04_node_QuickView(self): ''' Connect node QuickView to readXLS and view data''' readXLS = self.readXLS() QuickView = self.fc.createNode('QuickView', pos=(0, 0)) self.fc.connectTerminals(readXLS['output'], QuickView['In']) QTest.mouseClick(QuickView.ctrlWidget().pushButton_viewTable, Qt.LeftButton) #QuickView.ctrlWidget().twWindow.close() QTest.mouseClick(QuickView.ctrlWidget().pushButton_viewPlot, Qt.LeftButton) def test_05_node_TimeseriesPlot(self): ''' Load data, create two curves with node `makeTimeseriesCurve` and plot them with node `TimeseriesPlot`''' readXLS = self.readXLS() curve1 = self.fc.createNode('makeTimeseriesCurve', pos=(0, 0)) curve2 = self.fc.createNode('makeTimeseriesCurve', pos=(0, 0)) plotNode = self.fc.createNode('TimeseriesPlot', pos=(0, 0)) self.fc.connectTerminals(readXLS['output'], curve1['df']) self.fc.connectTerminals(readXLS['output'], curve2['df']) curve1.ctrlWidget().p.param('Y:signal').setValue(u'River') curve1.ctrlWidget().p.param('tz correct').setValue(1.2) self.fc.connectTerminals(curve1['Curve'], plotNode['Curves']) self.fc.connectTerminals(curve2['Curve'], plotNode['Curves']) plotNode.ctrlWidget().p.param('Y:Label').setValue('test label') plotNode.ctrlWidget().p.param('Y:Units').setValue('test units') plotNode.ctrlWidget().p.param('Crosshair').setValue(True) plotNode.ctrlWidget().p.param('Data Points').setValue(True) plotNode.ctrlWidget().p.param('Plot').activate() def test_06_node_StatisticalAnalysis(self): ''' Load data, perform stat analysis''' readXLS = self.readXLS() statAnalysis = self.fc.createNode('Plot Histogram', pos=(0, 0)) self.fc.connectTerminals(readXLS['output'], statAnalysis['In']) statAnalysis.ctrlWidget().p.param('Signal').setValue('GW_2') statAnalysis.ctrlWidget().p.param('Signal Units').setValue( 'test units') statAnalysis.ctrlWidget().p.param('Histogram Type').setValue( 'Normalized') statAnalysis.ctrlWidget().p.param('Bins').setValue(15) statAnalysis.ctrlWidget().p.param('Plot').activate()