source: qesdi/graphplotter/trunk/graphplotter/tests/unit/test_plot_builder.py @ 6311

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/qesdi/graphplotter/trunk/graphplotter/tests/unit/test_plot_builder.py@6311
Revision 6311, 2.6 KB checked in by pnorton, 10 years ago (diff)

First version of graphplotter.

Line 
1'''
2Created on 14 Jan 2010
3
4@author: pnorton
5'''
6
7from graphplotter.lib.plot_builder import PlotBuilder
8
9from mock import Mock, patch
10
11class TestPlotBuilder(object):
12   
13    def setUp(self):
14        self.params = {'datafile':'co2',
15                  'variable':'data',
16                  'axis':'time',
17                  'sel_scenario':'B1',
18                  'sel_model':'isam',
19                  'sel_sensitivity':'High'}
20       
21        self.config = {'path':'path/to/data.nc',
22                  'axisLookup': {'param1':'one', 'param2':'two',}}
23
24    @patch("graphplotter.lib.plot_builder.Plot", spec=True)
25    @patch("graphplotter.lib.plot_builder.DataReader", spec=True)
26    def test_001_callsLinplot(self, mockDataReader, mockLinplot):
27       
28        # set the return value to be used as input in linplot
29        mockDataReader().getData.return_value = ('xdata', 'ydata')
30       
31        #set the return value to a string instead of a PIL image
32        plot = mockLinplot()
33        plot.getImage.return_value = 'returned image'
34       
35        builder = PlotBuilder(self.params, self.config)
36       
37        img = builder.buildPlot()
38       
39        assert img == 'returned image'
40       
41        #check that the draw was called with the data
42        assert plot.draw.called
43        assert plot.draw.call_args == (('xdata', 'ydata'), {})
44   
45    @patch("graphplotter.lib.plot_builder.Plot", spec=True)
46    @patch("graphplotter.lib.plot_builder.DataReader", spec=True)
47    def test_002_dataReaderArgs(self, mockDataReader, mockLinplot):
48       
49        # set the return value to be used as input in linplot
50        mockDataReader().getData.return_value = ('xdata', 'ydata')
51       
52        #set the return value to a string instead of a PIL image
53        plot = mockLinplot()
54        plot.getImage.return_value = 'returned image'
55       
56        builder = PlotBuilder(self.params, self.config)
57       
58        img = builder.buildPlot()
59       
60        assert img == 'returned image'
61       
62        print mockDataReader.called
63        print mockDataReader.call_args
64       
65        expectedSelection = {'scenario':'B1',
66                             'model':'isam',
67                             'sensitivity':'High'}
68       
69        expectedArgs = (self.config['path'], self.params['variable'], self.params['axis'],
70                        expectedSelection, self.config['axisLookup'])
71       
72        print "mockDataReader.call_args[0]", mockDataReader.call_args[0]
73        print "expectedArgs", expectedArgs
74       
75        assert mockDataReader.called
76        assert mockDataReader.call_args[0] == expectedArgs
77       
Note: See TracBrowser for help on using the repository browser.