~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to configs/README.txt

  • Committer: Curtis Hovey
  • Date: 2011-12-29 05:40:17 UTC
  • mto: This revision was merged to the branch mainline in revision 14606.
  • Revision ID: curtis.hovey@canonical.com-20111229054017-e6ulob0k70kz3sj2
Renamed CanonicalConfig to LaunchpadConfig because that is what it is doing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
bootstrapped into the Zope startup process.
29
29
 
30
30
 
31
 
== CanonicalConfig ==
 
31
== LaunchpadConfig ==
32
32
 
33
 
Launchpad uses a singleton CanonicalConfig object to select the config
 
33
Launchpad uses a singleton LaunchpadConfig object to select the config
34
34
to load and manage its state.
35
35
 
36
36
 
46
46
to force the testrunner configuration to be loaded.
47
47
 
48
48
An instance directory may contain several lazr.config conf files.
49
 
CanonicalConfig loads the config file named for the process that is
50
 
running, eg. if the processes name is 'test', CanonicalConfig looks for
 
49
LaunchpadConfig loads the config file named for the process that is
 
50
running, eg. if the processes name is 'test', LaunchpadConfig looks for
51
51
test-lazr.conf. launchpad-lazr.conf is loaded if not a lazr config files
52
52
named for the process.
53
53
 
64
64
    '.../configs/development/launchpad-lazr.conf'
65
65
 
66
66
 
67
 
=== Accessing the CanonicalConfig in code ===
 
67
=== Accessing the LaunchpadConfig in code ===
68
68
 
69
 
The CanonicalConfig singleton is exposed as config in its module.
 
69
The LaunchpadConfig singleton is exposed as config in its module.
70
70
 
71
71
    from lp.services.config import config
72
72
 
91
91
    lib/canonical/launchpad/doc/canonical-config.txt
92
92
 
93
93
 
94
 
=== Testing with CanonicalConfig ===
 
94
=== Testing with LaunchpadConfig ===
95
95
 
96
96
Configurations are meant to be immutable--applications should never
97
97
alter the config. Nor should tests. Older code and tests assumed
98
98
that because the keys looked like attributes of the config, they
99
99
could be set. This was *wrong*. The code was actually adding an
100
 
attribute to the CanonicalConfig instance rather that updating to
 
100
attribute to the LaunchpadConfig instance rather that updating to
101
101
underlying config object. While the code intended to reset the key's
102
102
value to the original value, it would have to delete the new attribute
103
103
to really restore the config singleton.
104
104
 
105
 
CanonicalConfig supports testing by exposing lazr.config's push() and
 
105
LaunchpadConfig supports testing by exposing lazr.config's push() and
106
106
pop() methods to add and remove configurations to the stack of
107
107
ConfigData. The configuration can be modified and safely restored.
108
108