[ADD] tools/config: started tests.

bzr revid: vmt@openerp.com-20110601115055-idoid8p0pnkfci38
This commit is contained in:
Vo Minh Thu 2011-06-01 13:50:55 +02:00
parent 4b3aa9c764
commit b681b0ec75
4 changed files with 78 additions and 2 deletions

View File

@ -258,8 +258,10 @@ class configmanager(object):
self.parse_config()
def parse_config(self, args=[]):
opt, args = self.parser.parse_args()
def parse_config(self, args=None):
if args is None:
args = []
opt, args = self.parser.parse_args(args)
def die(cond, msg):
if cond:

View File

@ -0,0 +1,25 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import os
import signal
import sys
import threading
import traceback
import time
import openerp
openerp.tools.config.parse_config(sys.argv[1:])
config = openerp.tools.config
for name in [
'db_name',
'addons_path',
'demo',
'osv_memory_count_limit',
'osv_memory_age_limit',
]:
print "%s: %s - %s" % (name, config[name], type(config[name]))

View File

@ -0,0 +1,3 @@
[options]
osv_memory_count_limit = 5
osv_memory_age_limit = 3.4

View File

@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
""" Tests for the configuration file/command-line arguments. """
# This test should be run from its directory.
# TODO A configmanager object cannot parse multiple times a config file
# and/or the command line, preventing to 'reload' a configuration.
import os
import config
config_file_00 = os.path.join(os.path.dirname(__file__),'test-config-values-00.conf')
# 1. No config file, no command-line arguments (a.k.a. default values)
conf = config.configmanager()
conf.parse_config()
assert conf['osv_memory_age_limit'] == 1.0
assert os.path.join(conf['root_path'], 'addons') == conf['addons_path']
# 2. No config file, some command-line arguments
conf = config.configmanager()
# mess with the optparse.Option definition to allow an invalid path
conf.casts['addons_path'].action = 'store'
conf.parse_config(['--addons-path=/xyz/dont-exist', '--osv-memory-age-limit=2.3'])
assert conf['osv_memory_age_limit'] == 2.3
assert conf['addons_path'] == '/xyz/dont-exist'
# 3. Config file, no command-line arguments
conf = config.configmanager()
conf.parse_config(['-c', config_file_00])
assert conf['osv_memory_age_limit'] == 3.4
# 4. Config file, and command-line arguments
conf = config.configmanager()
conf.parse_config(['-c', config_file_00, '--osv-memory-age-limit=2.3'])
assert conf['osv_memory_age_limit'] == 2.3