The configuration section used is specified using the LPCONFIG environment variable, and defaults to 'development'
| Module | fixture | Fixtures related to configs. |
| Package | tests | No package docstring; 4/5 modules documented |
From the __init__.py module:
| Class | DatabaseConfig | A class to provide the Launchpad database configuration. |
| Class | DatabaseConfigOverrides | Undocumented |
| Class | LaunchpadConfig | Singleton configuration, accessed via the config module global. |
| Function | commalist | ZConfig validator for a comma separated list |
| Function | find_config_dir | Look through CONFIG_ROOT_DIRS for instance_name. |
| Function | find_instance_name | Undocumented |
| Function | loglevel | ZConfig validator for log levels. |
| Function | url | ZConfig validator for urls |
| Function | urlbase | ZConfig validator for url bases |
ZConfig validator for urls
We enforce the use of protocol.
>>> url('http://localhost:8086') 'http://localhost:8086' >>> url('im-a-file-but-not-allowed') Traceback (most recent call last): [...] ValueError: No protocol in URL
ZConfig validator for url bases
url bases are valid urls that can be appended to using urlparse.urljoin.
url bases always end with '/'
>>> urlbase('http://localhost:8086')
'http://localhost:8086/'
>>> urlbase('http://localhost:8086/')
'http://localhost:8086/'
URL fragments, queries and parameters are not allowed
>>> urlbase('http://localhost:8086/#foo')
Traceback (most recent call last):
[...]
ValueError: URL fragments not allowed
>>> urlbase('http://localhost:8086/?foo')
Traceback (most recent call last):
[...]
ValueError: URL query not allowed
>>> urlbase('http://localhost:8086/;blah=64')
Traceback (most recent call last):
[...]
ValueError: URL parameters not allowed
We insist on the protocol being specified, to avoid dealing with defaults
>>> urlbase('foo')
Traceback (most recent call last):
[...]
ValueError: No protocol in URL
File URLs specify paths to directories
>>> urlbase('file://bork/bork/bork')
'file://bork/bork/bork/'
ZConfig validator for log levels.
Input is a string ('info','debug','warning','error','fatal' etc. as per logging module), and output is the integer value.
>>> import logging >>> loglevel("info") == logging.INFO True >>> loglevel("FATAL") == logging.FATAL True >>> loglevel("foo") Traceback (most recent call last): ... ValueError: ...