Add commaSeperatedIntegers/commaSeperatedStrings validator functions to configuration. Rename testsuite collection test.py to testsuite.py to prevent name collision with test module test.py

This commit is contained in:
Stefan Hacker 2010-12-20 14:19:55 +01:00
parent 4e3aaea8d5
commit 41e1e75211
5 changed files with 34 additions and 5 deletions

View File

@ -87,9 +87,25 @@ class Config(object):
self.__dict__[section].__dict__[name] = vdefault
def x2bool(s):
"""Helper function to convert strings from the config to bool"""
"""
Helper function to convert strings from the config to bool
"""
if isinstance(s, bool):
return s
elif isinstance(s, basestring):
return s.lower() in ['1', 'true']
raise ValueError()
def commaSeperatedIntegers(s):
"""
Helper function to convert a string from the config
containing comma seperated integers into a list of integers
"""
return map(int, s.split(','))
def commaSeperatedStrings(s):
"""
Helper function to convert a string from the config
containing comma seperated strings into a list of strings
"""
return map(str.strip, s.split(','))

View File

@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import unittest
from config import Config, x2bool
from config import Config, x2bool, commaSeperatedIntegers, commaSeperatedStrings
from tempfile import mkstemp
import os
import re
@ -97,6 +97,13 @@ value = True
assert(x2bool("10") == False)
assert(x2bool("notabool") == False)
def testCommaSeperatedIntegers(self):
assert(commaSeperatedIntegers(" 1,2 , 333 ") == [1,2,333])
self.assertRaises(ValueError, commaSeperatedIntegers, "1,2,a")
def testCommaSeperatedStrings(self):
assert(commaSeperatedStrings("Bernd, the, bred !") == ["Bernd", "the", "bred !"])
def testConfig(self):
path = create_file(self.cfg_content)
try:

View File

@ -32,7 +32,9 @@
import sys
import Ice
import logging
from config import Config, x2bool
from config import (Config,
x2bool,
commaSeperatedIntegers)
from threading import Timer
from optparse import OptionParser
@ -57,7 +59,7 @@ default.update({'ice':(('host', str, '127.0.0.1'),
('watchdog', int, 30)),
'iceraw':None,
'murmur':(('servers', lambda x:map(int, x.split(',')), []),),
'murmur':(('servers', commaSeperatedIntegers, []),),
'log':(('level', int, logging.DEBUG),
('file', str, 'mumo.log'))})

View File

@ -29,7 +29,11 @@
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
from config import Config, x2bool
from config import (Config,
x2bool,
commaSeperatedIntegers,
commaSeperatedStrings)
from worker import Worker
class MumoModule(Worker):