source: qesdi/geoplot/trunk/lib/geoplot/tests/unit/test_config.py @ 5403

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/qesdi/geoplot/trunk/lib/geoplot/tests/unit/test_config.py@5403
Revision 5403, 4.2 KB checked in by pnorton, 12 years ago (diff)

Moved QESDI tree from DCIP repository
 http://proj.badc.rl.ac.uk/svn/dcip/qesdi@3900.

Line 
1#/urs/bin/env python
2"""
3test_plot_base.py
4"""
5
6import geoplot.config as geoplot_config
7import nose
8
9
10
11class Test_Config(object):
12
13    def setUp(self):
14        geoplot_config._conf = None
15        self.oldGetConfigParserFunc = geoplot_config.getConfigParser
16        geoplot_config.getConfigParser = returnMockConfig
17        self.oldExceptionList = geoplot_config.exceptionsList
18        geoplot_config.exceptionsList = [
19            ("Section2", "shouldBeATuple", tuple)]
20       
21        config = geoplot_config.getConfig()
22
23    def tearDown(self):
24        geoplot_config._conf = None
25        geoplot_config.getConfigParser = self.oldGetConfigParserFunc
26        geoplot_config.exceptionsList = self.oldExceptionList
27   
28    def test_001_checkConfigDictIsNotRebuilt(self):
29        originalConfig = geoplot_config.getConfig()
30        newConfig = geoplot_config.getConfig()
31        nose.tools.assert_true(originalConfig is newConfig)
32
33    def test_002_convertVal(self):
34       
35        testValues = [("1",1),("2.", 2.0), ("three", "three"),
36                      ("F o u r", ['F','o', 'u', 'r']),
37                      ("TrUE", True), ("'f i v e'","'f i v e'")]
38       
39        for (stringValue, expectedValue) in testValues:
40            print stringValue
41            convertedValue = geoplot_config._convertVal(stringValue)
42            print convertedValue
43            nose.tools.assert_equals(expectedValue, convertedValue)
44           
45    def test_003_convertValToType(self):
46       
47        testValues = [("1",1, int),("2", 2.0, float), ("3", "3", str),
48                      ("F o u r", ['F','o', 'u', 'r'], list),
49                      ("5", [5], list), ("5.0", (5.0,),tuple),
50                      ("TrUE", True, bool), ("0", False, bool)]
51       
52        for (stringValue, expectedValue, conversionType) in testValues:
53
54            convertedValue = geoplot_config._convertValToType(stringValue, 
55                                                              conversionType)
56            nose.tools.assert_equals(expectedValue, convertedValue)
57
58    def test_004_convertToList(self):
59        s = "one 2 3.0 true"
60        expectedList = ["one", 2, 3.0, True]
61        resultList = geoplot_config._convertToList(s)
62        nose.tools.assert_equal(expectedList, resultList)
63       
64    def test_005_createsDictionary(self):
65        config = geoplot_config.getConfig()
66       
67        nose.tools.assert_true('Section1' in config.keys())
68        nose.tools.assert_true('Section2' in config.keys())
69        nose.tools.assert_true('Fonts' in config.keys())
70       
71        for key in mockConfigData['Section1']:
72            stringValue = mockConfigData['Section1'][key]
73            nose.tools.assert_equal(config['Section1'][key], 
74                        geoplot_config._convertVal(stringValue) )
75       
76        stringValue = mockConfigData['Section2']['a']
77        configValue = config['Section2']['a']
78        expectedValue = geoplot_config._convertVal(stringValue) 
79        nose.tools.assert_equal(configValue, expectedValue)
80   
81    def test_006_checksExceptionList(self):
82        config = geoplot_config.getConfig()
83       
84        stringValue = mockConfigData['Section2']['shouldBeATuple']
85        configValue = config['Section2']['shouldBeATuple']
86        expectedValue = geoplot_config._convertValToType(stringValue, tuple) 
87        nose.tools.assert_equal(configValue, expectedValue)
88
89mockConfigData = {
90'Section1':{"a":"1", "b":"2.0", "something":"true", "many":"l i s t",  },
91'Section2':{"a":"string", "shouldBeATuple":"1 2 3" },
92"PlotFont:title":{"weight":"bold", "family":"sans-serif", 
93                  "sizeSmall":"1", "sizeMedium":"2", "sizeLarge":"3", "sizeXL":"4", "sizeXXL":"5"}
94}
95
96def returnMockConfig():
97    conf = MockConfigParser(mockConfigData)
98    return conf
99
100
101class MockConfigParser(object):
102   
103    def __init__(self, dataDict):
104        self.dataDict = dataDict
105       
106    def sections(self):
107        return self.dataDict.keys()
108   
109    def items(self,section):
110        itemList = []
111        sectionDict = self.dataDict[section]
112        for key in sectionDict.keys():
113            itemList.append((key, sectionDict[key]))
114        return itemList
115
116if __name__ == '__main__':
117
118    import geoplot.log_util
119    geoplot.log_util.setGeoplotHandlerToStdOut()
120
121    nose.runmodule()
Note: See TracBrowser for help on using the repository browser.