policy: don't hack around oslo.config path search algorithm

Instead, pass proper --config-file when running tests. This should
make oslo_config.ConfigOpts.find_file work even when running from the
source tree.

Change-Id: I24e36170e6f289ac08c9ba7b6ac48d595cea0ab9
This commit is contained in:
Ihar Hrachyshka 2015-02-27 15:37:32 +01:00
parent 9d5e2b9b01
commit 1404f33b50
2 changed files with 9 additions and 11 deletions

View File

@ -22,14 +22,12 @@ import itertools
import logging import logging
import re import re
from oslo_config import cfg
from oslo_utils import excutils from oslo_utils import excutils
from oslo_utils import importutils from oslo_utils import importutils
from neutron.api.v2 import attributes from neutron.api.v2 import attributes
from neutron.common import constants as const from neutron.common import constants as const
from neutron.common import exceptions from neutron.common import exceptions
import neutron.common.utils as utils
from neutron.i18n import _LE, _LI, _LW from neutron.i18n import _LE, _LI, _LW
from neutron.openstack.common import log from neutron.openstack.common import log
from neutron.openstack.common import policy from neutron.openstack.common import policy
@ -71,11 +69,6 @@ def init():
global _ENFORCER global _ENFORCER
if not _ENFORCER: if not _ENFORCER:
_ENFORCER = policy.Enforcer() _ENFORCER = policy.Enforcer()
# NOTE: Method _get_policy_path in common.policy can not always locate
# neutron policy file (when init() is called in tests),
# so set it explicitly.
_ENFORCER.policy_path = utils.find_config_file({},
cfg.CONF.policy_file)
_ENFORCER.load_rules(True) _ENFORCER.load_rules(True)

View File

@ -41,12 +41,12 @@ CONF = cfg.CONF
CONF.import_opt('state_path', 'neutron.common.config') CONF.import_opt('state_path', 'neutron.common.config')
LOG_FORMAT = sub_base.LOG_FORMAT LOG_FORMAT = sub_base.LOG_FORMAT
ROOTDIR = os.path.dirname(__file__) ROOT_DIR = os.path.join(os.path.dirname(__file__), '..', '..')
ETCDIR = os.path.join(ROOTDIR, 'etc') TEST_ROOT_DIR = os.path.dirname(__file__)
def etcdir(*p): def etcdir(filename, root=TEST_ROOT_DIR):
return os.path.join(ETCDIR, *p) return os.path.join(root, 'etc', filename)
def fake_use_fatal_exceptions(*args): def fake_use_fatal_exceptions(*args):
@ -68,6 +68,11 @@ class BaseTestCase(sub_base.SubBaseTestCase):
# neutron.conf.test includes rpc_backend which needs to be cleaned up # neutron.conf.test includes rpc_backend which needs to be cleaned up
if args is None: if args is None:
args = ['--config-file', etcdir('neutron.conf.test')] args = ['--config-file', etcdir('neutron.conf.test')]
# this is needed to add ROOT_DIR to the list of paths that oslo.config
# will try to traverse when searching for a new config file (it's
# needed so that policy module can locate policy_file)
args += ['--config-file', etcdir('neutron.conf', root=ROOT_DIR)]
if conf is None: if conf is None:
config.init(args=args) config.init(args=args)
else: else: