global_config_unittest.py revision dca34e1b122659ecc4eaf885805a95a7e18f57e0
1#!/usr/bin/python2.4 2 3import os, sys 4import tempfile 5import unittest 6import types 7import global_config 8 9 10 11global_config_ini_contents = """ 12[SECTION_A] 13value_1: 6.0 14value_2: hello 15value_3: true 16value_4: FALSE 17value_5: tRuE 18value_6: falsE 19 20[SECTION_B] 21value_1: -5 22value_2: 2.3 23value_3: 0 24value_4: 7 25 26[SECTION_C] 27value_1: nobody@localhost 28""" 29 30shadow_config_ini_contents = """ 31[SECTION_C] 32value_1: somebody@remotehost 33""" 34 35 36def create_config_files(): 37 (fp, global_file) = tempfile.mkstemp(".ini", text=True) 38 os.write(fp, global_config_ini_contents) 39 os.close(fp) 40 41 (fp, shadow_file) = tempfile.mkstemp(".ini", text=True) 42 os.write(fp, shadow_config_ini_contents) 43 os.close(fp) 44 45 return (global_file, shadow_file) 46 47 48class global_config_test(unittest.TestCase): 49 # grab the singelton 50 conf = global_config.global_config 51 52 def setUp(self): 53 # set the config files to our test files 54 (self.global_file, self.shadow_file) = create_config_files() 55 self.conf.set_config_files(self.global_file, self.shadow_file) 56 57 58 def tearDown(self): 59 os.remove(self.global_file) 60 os.remove(self.shadow_file) 61 62 63 def testFloat(self): 64 val = self.conf.get_config_value("SECTION_A", "value_1", float) 65 self.assertEquals(type(val), types.FloatType) 66 self.assertEquals(val, 6.0) 67 68 69 def testInt(self): 70 val = self.conf.get_config_value("SECTION_B", "value_1", int) 71 self.assertEquals(type(val), types.IntType) 72 self.assertTrue(val < 0) 73 val = self.conf.get_config_value("SECTION_B", "value_3", int) 74 self.assertEquals(val, 0) 75 val = self.conf.get_config_value("SECTION_B", "value_4", int) 76 self.assertTrue(val > 0) 77 78 79 def testString(self): 80 val = self.conf.get_config_value("SECTION_A", "value_2") 81 self.assertEquals(type(val),types.StringType) 82 self.assertEquals(val, "hello") 83 84 85 def testOverride(self): 86 val = self.conf.get_config_value("SECTION_C", "value_1") 87 self.assertEquals(val, "somebody@remotehost") 88 89 90 def testException(self): 91 error = 0 92 try: 93 val = self.conf.get_config_value("SECTION_B", 94 "value_2", int) 95 except: 96 error = 1 97 self.assertEquals(error, 1) 98 99 100 def testBoolean(self): 101 val = self.conf.get_config_value("SECTION_A", "value_3", bool) 102 self.assertEquals(val, True) 103 val = self.conf.get_config_value("SECTION_A", "value_4", bool) 104 self.assertEquals(val, False) 105 val = self.conf.get_config_value("SECTION_A", "value_5", bool) 106 self.assertEquals(val, True) 107 val = self.conf.get_config_value("SECTION_A", "value_6", bool) 108 self.assertEquals(val, False) 109 110 111 def testDefaults(self): 112 val = self.conf.get_config_value("MISSING", "foo", float, 3.6) 113 self.assertEquals(val, 3.6) 114 val = self.conf.get_config_value("SECTION_A", "novalue", str, 115 "default") 116 self.assertEquals(val, "default") 117 118 119# this is so the test can be run in standalone mode 120if __name__ == '__main__': 121 unittest.main() 122