~avishai-ish-shalom/cloud-init/chef-refactor

« back to all changes in this revision

Viewing changes to tests/unittests/test__init__.py

support different and user-suppliable merging algorithms for cloud-config

This adds a very useful mechanism for merging cloud-config, allowing
the user to append to lists (ie, just add more 'run_cmd') or other
things.

See doc/merging.txt for more information, it is intended to be backwards
compatible by default.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
    def list_types(self):
23
23
        return self.types
24
24
 
25
 
    def _handle_part(self, data, ctype, filename, payload, frequency):
 
25
    def handle_part(self, _data, ctype, filename,  # pylint: disable=W0221
 
26
                    payload, frequency):
26
27
        pass
27
28
 
28
29
 
103
104
        self.filename = "fake filename"
104
105
        self.payload = "fake payload"
105
106
        self.frequency = settings.PER_INSTANCE
 
107
        self.headers = {
 
108
            'Content-Type': self.ctype,
 
109
        }
106
110
 
107
111
    def test_normal_version_1(self):
108
112
        """
118
122
                             self.payload)
119
123
        self.mocker.replay()
120
124
 
121
 
        handlers.run_part(mod_mock, self.data, self.ctype, self.filename,
122
 
                          self.payload, self.frequency)
 
125
        handlers.run_part(mod_mock, self.data, self.filename,
 
126
                          self.payload, self.frequency, self.headers)
123
127
 
124
128
    def test_normal_version_2(self):
125
129
        """
135
139
                             self.payload, self.frequency)
136
140
        self.mocker.replay()
137
141
 
138
 
        handlers.run_part(mod_mock, self.data, self.ctype, self.filename,
139
 
                          self.payload, self.frequency)
 
142
        handlers.run_part(mod_mock, self.data, self.filename,
 
143
                          self.payload, self.frequency, self.headers)
140
144
 
141
145
    def test_modfreq_per_always(self):
142
146
        """
152
156
                             self.payload)
153
157
        self.mocker.replay()
154
158
 
155
 
        handlers.run_part(mod_mock, self.data, self.ctype, self.filename,
156
 
                          self.payload, self.frequency)
 
159
        handlers.run_part(mod_mock, self.data, self.filename,
 
160
                          self.payload, self.frequency, self.headers)
157
161
 
158
162
    def test_no_handle_when_modfreq_once(self):
159
163
        """C{handle_part} is not called if frequency is once."""
163
167
        self.mocker.result(settings.PER_ONCE)
164
168
        self.mocker.replay()
165
169
 
166
 
        handlers.run_part(mod_mock, self.data, self.ctype, self.filename,
167
 
                          self.payload, self.frequency)
 
170
        handlers.run_part(mod_mock, self.data, self.filename,
 
171
                          self.payload, self.frequency, self.headers)
168
172
 
169
173
    def test_exception_is_caught(self):
170
174
        """Exceptions within C{handle_part} are caught and logged."""
178
182
        self.mocker.throw(Exception())
179
183
        self.mocker.replay()
180
184
 
181
 
        handlers.run_part(mod_mock, self.data, self.ctype, self.filename,
182
 
                          self.payload, self.frequency)
 
185
        handlers.run_part(mod_mock, self.data, self.filename,
 
186
                          self.payload, self.frequency, self.headers)
183
187
 
184
188
 
185
189
class TestCmdlineUrl(MockerTestCase):