Ignore:
Timestamp:
15/01/10 16:26:13 (10 years ago)
Author:
pnorton
Message:

First attempt at getting the buildplot action to work.

Location:
qesdi/graphplotter/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • qesdi/graphplotter/trunk

    • Property svn:ignore
      •  

        old new  
        11.pydevproject 
        22.project 
         3Paste-1.7.2-py2.5.egg 
         4PasteDeploy-1.3.3-py2.5.egg 
         5PasteScript-1.7.3-py2.5.egg 
  • qesdi/graphplotter/trunk/graphplotter/tests/functional/test_buildplot.py

    r6311 r6313  
    55class TestBuildplotController(TestController): 
    66 
     7    @patch('graphplotter.controllers.buildplot.DataReader', spec=True) 
    78    @patch('graphplotter.controllers.buildplot.DFConfigReader', spec=True) 
    8     def test_001_indexContainsDataFiles(self, mockConfigReader): 
     9    def test_001_indexContainsDataFiles(self, mockConfigReader, mockDataReader): 
    910         
    1011        configFiles = ['alpha','beta','gamma','delta'] 
     
    1819        for cf in configFiles: 
    1920            assert cf in response 
     21             
     22        assert mockDataReader.called == False 
    2023     
    21      
     24    @patch('graphplotter.controllers.buildplot.DataReader', spec=True) 
     25    @patch('graphplotter.controllers.buildplot.DFConfigReader', spec=True) 
     26    def test_002_indexContainsVariable(self, mockConfigReader, mockDataReader): 
     27         
     28        dfConfig = {'path':'/path/to/file.nc', 'axisLookup':{'a':'b'}} 
     29        configFiles = ['alpha','beta','gamma','delta'] 
     30        variable = ['red', 'blue', 'green', 'yellow'] 
     31         
     32        mockDataReader().getVariableNames.return_value = variable 
     33        mockConfigReader().getDataFileList.return_value = configFiles 
     34        mockConfigReader().getConfig.return_value = dfConfig 
     35         
     36        response = self.app.get(url(controller='buildplot', action='index'), {'datafile':'alpha'}) 
     37         
     38        print response.body 
     39         
     40        # check that the alpha value is selected 
     41        assert 'selected="selected" value="alpha"' in response 
     42         
     43        assert mockConfigReader().getConfig.callled 
     44        assert mockConfigReader().getConfig.call_args[0] == ('alpha',) 
     45         
     46        assert mockDataReader.called 
     47        assert mockDataReader.call_args == ((dfConfig['path'], dfConfig['axisLookup']), {}) 
     48         
     49        for v in variable: 
     50            assert v in response, "variable '%s' not found in response" % (v,) 
     51         
     52    @patch('graphplotter.controllers.buildplot.DataReader', spec=True) 
     53    @patch('graphplotter.controllers.buildplot.DFConfigReader', spec=True) 
     54    def test_003_indexContainsAxis(self, mockConfigReader, mockDataReader): 
     55         
     56        dfConfig = {'path':'/path/to/file.nc', 'axisLookup':{'a':'b'}} 
     57        configFiles = ['alpha','beta','gamma','delta'] 
     58        variable = ['red', 'blue', 'green', 'yellow'] 
     59        axis = ['circle','square','triangle', 'rectangle'] 
     60         
     61        mockDataReader().getVariableNames.return_value = variable 
     62        mockConfigReader().getDataFileList.return_value = configFiles 
     63        mockConfigReader().getConfig.return_value = dfConfig 
     64        mockDataReader().getAxisNames.return_value = axis 
     65         
     66        response = self.app.get(url(controller='buildplot', action='index'), {'datafile':'alpha', 
     67                                                                              'variable':'blue'}) 
     68         
     69        print response.body 
     70         
     71        # check that the blue variable value is selected 
     72        assert 'selected="selected" value="blue"' in response, "variable 'blue' wasn't selected in the response" 
     73         
     74        # check that the axis were requested for the blue variable 
     75         
     76        assert mockDataReader().getAxisNames.called 
     77        assert mockDataReader().getAxisNames.call_args == (('blue',), {}) 
     78                 
     79        for a in axis: 
     80            assert a in response, "axis '%s' not found in response" % (a,) 
     81             
     82    @patch('graphplotter.controllers.buildplot.DataReader', spec=True) 
     83    @patch('graphplotter.controllers.buildplot.DFConfigReader', spec=True) 
     84    def test_004_indexContainsAxisValueSelection(self, mockConfigReader, mockDataReader): 
     85         
     86        dfConfig = {'path':'/path/to/file.nc', 'axisLookup':{'a':'b'}} 
     87        configFiles = ['alpha','beta','gamma','delta'] 
     88        variable = ['red', 'blue', 'green', 'yellow'] 
     89        axis = ['circle','square','triangle', 'rectangle'] 
     90         
     91        mockDataReader().getVariableNames.return_value = variable 
     92        mockConfigReader().getDataFileList.return_value = configFiles 
     93        mockConfigReader().getConfig.return_value = dfConfig 
     94        mockDataReader().getAxisNames.return_value = axis 
     95         
     96        axisValues  = {'circle':['a','b','c'], 
     97                       'square':['one','two','three'],  
     98                       'triangle':[1.5,2.0,3.8]} 
     99         
     100        def getAxisVals(var, name): 
     101            assert var == 'blue' 
     102            return axisValues[name] 
     103         
     104        mockDataReader().getAxisValues.side_effect = getAxisVals 
     105         
     106        response = self.app.get(url(controller='buildplot', action='index'), {'datafile':'alpha', 
     107                                                                              'variable':'blue', 
     108                                                                               'axis':'rectangle'}) 
     109         
     110        print response.body 
     111         
     112        # check that the rectangle axis value is selected 
     113        assert 'selected="selected" value="rectangle"' in response, "axis 'rectangle' wasn't selected in the response" 
     114         
     115        # check that the index values appear in the response 
     116        for ax in ['circle','square']: 
     117            for v in axisValues[ax]: 
     118                assert  '<option value="%s">%s</option>' % (v, v) in response, " option '%s' wasn't found in the response" % (v,) 
     119             
     120        # check that the range appears in the response 
     121        assert '1.5 - 3.8' in response 
Note: See TracChangeset for help on using the changeset viewer.