From 9cffbba7e5aded2891e68071d6689f481945b38b Mon Sep 17 00:00:00 2001 From: BJ Dierkes Date: Sun, 7 Mar 2010 15:13:41 -0600 Subject: [PATCH] adding tests --- ChangeLog | 6 +++++- cement/core/app_setup.py | 10 ++++++++-- cement/core/configuration.py | 5 +++-- cement/core/hook.py | 3 +++ cement/core/namespace.py | 3 +++ tests/__init__.py | 0 6 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 tests/__init__.py diff --git a/ChangeLog b/ChangeLog index bd865761..87150959 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,11 @@ 0.7.3 - unreleased ----------------------------------------------------------------------------- - + + Paster now creates 'yourapp-plugin-yourplugin' rather than a plural + '-plugins-' which is more standard. + + Removed bogus hooks: bootstrap_application_hook, bootstrap_plugins_hook + + 0.7.2 - Mar 06, 2010 ----------------------------------------------------------------------------- diff --git a/cement/core/app_setup.py b/cement/core/app_setup.py index 026d60e9..d3389dcc 100644 --- a/cement/core/app_setup.py +++ b/cement/core/app_setup.py @@ -4,6 +4,7 @@ import sys from pkg_resources import get_distribution from cement import namespaces, buf_stdout, buf_stderr, SAVED_STDOUT, SAVED_STDERR +from cement.core.exc import CementConfigError from cement.core.configuration import CEMENT_API, set_config_opts_per_file from cement.core.configuration import validate_config, get_default_config from cement.core.plugin import load_all_plugins @@ -41,8 +42,6 @@ def register_default_hooks(): define_hook('validate_config_hook') define_hook('pre_plugins_hook') define_hook('post_plugins_hook') - define_hook('bootstrap_application_hook') - define_hook('bootstrap_plugins_hook') def lay_cement(config=None, banner=None): """ @@ -69,6 +68,13 @@ def lay_cement(config=None, banner=None): """ global namespaces + try: + assert config, "default config required!" + except AssertionError, e: + raise CementConfigError, e.message + + validate_config(config) + if not banner: banner = "%s version %s" % ( config['app_name'], diff --git a/cement/core/configuration.py b/cement/core/configuration.py index 219629b2..e962e495 100644 --- a/cement/core/configuration.py +++ b/cement/core/configuration.py @@ -11,6 +11,7 @@ def get_default_config(): """Get a default config dict.""" dcf = ConfigObj() dcf['config_source'] = ['defaults'] + dcf['config_files'] = [] dcf['enabled_plugins'] = [] dcf['debug'] = False dcf['show_plugin_load'] = True @@ -55,7 +56,7 @@ def ensure_api_compat(module_name, required_api): """ if required_api == CEMENT_API: - pass + return True else: raise CementRuntimeError, \ "%s requires Cement(api:%s) which differs from installed Cement(api:%s)." % \ @@ -214,7 +215,7 @@ def validate_config(config): required_settings = [ 'config_source', 'config_files', 'debug', 'datadir', 'enabled_plugins', 'plugin_config_dir', 'app_module', 'app_name', - 'tmpdir', 'merge_root_options', 'output_engine' + 'tmpdir', 'output_engine' ] for s in required_settings: if not config.has_key(s): diff --git a/cement/core/hook.py b/cement/core/hook.py index 0ec1249e..cec81baa 100644 --- a/cement/core/hook.py +++ b/cement/core/hook.py @@ -6,6 +6,9 @@ from cement.core.log import get_logger log = get_logger(__name__) +def clear_hooks(): + hooks = {} + def define_hook(name): """ Define a hook namespace that plugins can register hooks in. diff --git a/cement/core/namespace.py b/cement/core/namespace.py index 892b8b0e..de431d88 100644 --- a/cement/core/namespace.py +++ b/cement/core/namespace.py @@ -12,6 +12,9 @@ from cement.core.opt import init_parser log = get_logger(__name__) +def clear_namespaces(): + namespaces = {} + def get_namespace(namespace): """ Return the namespace object whose label is 'namespace'. diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e69de29b