summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--git_trace2_event_log.py7
-rw-r--r--tests/test_git_trace2_event_log.py24
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'))