diff options
-rw-r--r-- | git_trace2_event_log.py | 7 | ||||
-rw-r--r-- | tests/test_git_trace2_event_log.py | 24 |
2 files changed, 31 insertions, 0 deletions
diff --git a/git_trace2_event_log.py b/git_trace2_event_log.py index 8f12d1a9..fae3d4c8 100644 --- a/git_trace2_event_log.py +++ b/git_trace2_event_log.py | |||
@@ -159,6 +159,13 @@ class EventLog(object): | |||
159 | def_param_event['value'] = value | 159 | def_param_event['value'] = value |
160 | self._log.append(def_param_event) | 160 | self._log.append(def_param_event) |
161 | 161 | ||
162 | def ErrorEvent(self, msg, fmt): | ||
163 | """Append a 'error' event to the current log.""" | ||
164 | error_event = self._CreateEventDict('error') | ||
165 | error_event['msg'] = msg | ||
166 | error_event['fmt'] = fmt | ||
167 | self._log.append(error_event) | ||
168 | |||
162 | def _GetEventTargetPath(self): | 169 | def _GetEventTargetPath(self): |
163 | """Get the 'trace2.eventtarget' path from git configuration. | 170 | """Get the 'trace2.eventtarget' path from git configuration. |
164 | 171 | ||
diff --git a/tests/test_git_trace2_event_log.py b/tests/test_git_trace2_event_log.py index 4a3a4c48..bee5865b 100644 --- a/tests/test_git_trace2_event_log.py +++ b/tests/test_git_trace2_event_log.py | |||
@@ -234,6 +234,30 @@ class EventLogTestCase(unittest.TestCase): | |||
234 | self.assertEqual(len(self._log_data), 1) | 234 | self.assertEqual(len(self._log_data), 1) |
235 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') | 235 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') |
236 | 236 | ||
237 | def test_error_event(self): | ||
238 | """Test and validate 'error' event data is valid. | ||
239 | |||
240 | Expected event log: | ||
241 | <version event> | ||
242 | <error event> | ||
243 | """ | ||
244 | msg = 'invalid option: --cahced' | ||
245 | fmt = 'invalid option: %s' | ||
246 | self._event_log_module.ErrorEvent(msg, fmt) | ||
247 | with tempfile.TemporaryDirectory(prefix='event_log_tests') as tempdir: | ||
248 | log_path = self._event_log_module.Write(path=tempdir) | ||
249 | self._log_data = self.readLog(log_path) | ||
250 | |||
251 | self.assertEqual(len(self._log_data), 2) | ||
252 | error_event = self._log_data[1] | ||
253 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') | ||
254 | self.verifyCommonKeys(error_event, expected_event_name='error') | ||
255 | # Check for 'error' event specific fields. | ||
256 | self.assertIn('msg', error_event) | ||
257 | self.assertIn('fmt', error_event) | ||
258 | self.assertEqual(error_event['msg'], msg) | ||
259 | self.assertEqual(error_event['fmt'], fmt) | ||
260 | |||
237 | def test_write_with_filename(self): | 261 | def test_write_with_filename(self): |
238 | """Test Write() with a path to a file exits with None.""" | 262 | """Test Write() with a path to a file exits with None.""" |
239 | self.assertIsNone(self._event_log_module.Write(path='path/to/file')) | 263 | self.assertIsNone(self._event_log_module.Write(path='path/to/file')) |