def test_config_dir(self): from pecan import configuration if sys.version_info >= (2, 6): conf = configuration.Config({}) self.assertEqual([], dir(conf)) conf = configuration.Config({'a': 1}) self.assertEqual(['a'], dir(conf))
def test_config_with_bad_import(self): from pecan import configuration path = ('bad', 'importerror.py') configuration.Config({}) self.assertRaises(ImportError, configuration.conf_from_file, os.path.join(__here__, 'config_fixtures', *path))
def test_config_illegal_ids(self): from pecan import configuration conf = configuration.Config({}) conf.update( configuration.conf_from_file( os.path.join(__here__, 'config_fixtures/bad/module_and_underscore.py'))) self.assertEqual([], list(conf))
def test_config_with_syntax_error(self): from pecan import configuration with tempfile.NamedTemporaryFile('wb') as f: f.write(b_('\n'.join(['if false', 'var = 3']))) f.flush() configuration.Config({}) self.assertRaises(SyntaxError, configuration.conf_from_file, f.name)
def test_update_config_fail_message(self): """When failing, the __force_dict__ key is suggested""" from pecan import configuration bad_dict = {'bad name': 'value'} try: configuration.Config(bad_dict) except ValueError as error: assert "consider using the '__force_dict__'" in str(error)
def test_config_missing_file(self): from pecan import configuration path = ('doesnotexist.py',) configuration.Config({}) self.assertRaises( RuntimeError, configuration.conf_from_file, os.path.join(__here__, 'config_fixtures', *path) )
def test_config_with_non_package_relative_import(self): from pecan import configuration with tempfile.NamedTemporaryFile('wb', suffix='.py') as f: f.write(b_('\n'.join(['from . import variables']))) f.flush() configuration.Config({}) try: configuration.conf_from_file(f.name) except (ValueError, SystemError, ImportError) as e: assert 'relative import' in str(e) else: raise AssertionError( "A relative import-related error should have been raised")
def test_config_repr(self): from pecan import configuration conf = configuration.Config({'a': 1}) self.assertEqual(repr(conf), "Config({'a': 1})")
def test_config_get_invalid_key_return_default(self): from pecan import configuration conf = configuration.Config({'a': 1}) assert conf.get('b', True) is True
def test_config_get_invalid_key(self): from pecan import configuration conf = configuration.Config({'a': 1}) assert conf.get('b') is None
def test_config_bad_key(self): from pecan import configuration conf = configuration.Config({'a': 1}) assert conf.a == 1 self.assertRaises(AttributeError, getattr, conf, 'b')
def test_config_dir(self): from pecan import configuration conf = configuration.Config({}) self.assertEqual([], dir(conf)) conf = configuration.Config({'a': 1}) self.assertEqual(['a'], dir(conf))