diff options
-rw-r--r-- | git_trace2_event_log.py | 6 | ||||
-rw-r--r-- | tests/test_git_trace2_event_log.py | 11 |
2 files changed, 12 insertions, 5 deletions
diff --git a/git_trace2_event_log.py b/git_trace2_event_log.py index 92c4cc6b..0d4f23f4 100644 --- a/git_trace2_event_log.py +++ b/git_trace2_event_log.py | |||
@@ -167,6 +167,10 @@ class EventLog(object): | |||
167 | repo_config = {k: v for k, v in config.items() if k.startswith('repo.')} | 167 | repo_config = {k: v for k, v in config.items() if k.startswith('repo.')} |
168 | self.LogConfigEvents(repo_config, 'def_param') | 168 | self.LogConfigEvents(repo_config, 'def_param') |
169 | 169 | ||
170 | def GetDataEventName(self, key): | ||
171 | """Returns the 'data-json' if the key is argv else returns 'data'.""" | ||
172 | return 'data-json' if key.endswith('sys.argv') else 'data' | ||
173 | |||
170 | def LogDataConfigEvents(self, config, prefix): | 174 | def LogDataConfigEvents(self, config, prefix): |
171 | """Append a 'data' event for each config key/value in |config| to the current log. | 175 | """Append a 'data' event for each config key/value in |config| to the current log. |
172 | 176 | ||
@@ -178,7 +182,7 @@ class EventLog(object): | |||
178 | prefix: Prefix for each key that is logged. | 182 | prefix: Prefix for each key that is logged. |
179 | """ | 183 | """ |
180 | for key, value in config.items(): | 184 | for key, value in config.items(): |
181 | event = self._CreateEventDict('data') | 185 | event = self._CreateEventDict(self.GetDataEventName(key)) |
182 | event['key'] = f'{prefix}/{key}' | 186 | event['key'] = f'{prefix}/{key}' |
183 | event['value'] = value | 187 | event['value'] = value |
184 | self._log.append(event) | 188 | self._log.append(event) |
diff --git a/tests/test_git_trace2_event_log.py b/tests/test_git_trace2_event_log.py index a5a6cbba..6131c7b3 100644 --- a/tests/test_git_trace2_event_log.py +++ b/tests/test_git_trace2_event_log.py | |||
@@ -42,7 +42,7 @@ class EventLogTestCase(unittest.TestCase): | |||
42 | self._event_log_module = git_trace2_event_log.EventLog(env=env) | 42 | self._event_log_module = git_trace2_event_log.EventLog(env=env) |
43 | self._log_data = None | 43 | self._log_data = None |
44 | 44 | ||
45 | def verifyCommonKeys(self, log_entry, expected_event_name, full_sid=True): | 45 | def verifyCommonKeys(self, log_entry, expected_event_name=None, full_sid=True): |
46 | """Helper function to verify common event log keys.""" | 46 | """Helper function to verify common event log keys.""" |
47 | self.assertIn('event', log_entry) | 47 | self.assertIn('event', log_entry) |
48 | self.assertIn('sid', log_entry) | 48 | self.assertIn('sid', log_entry) |
@@ -50,7 +50,8 @@ class EventLogTestCase(unittest.TestCase): | |||
50 | self.assertIn('time', log_entry) | 50 | self.assertIn('time', log_entry) |
51 | 51 | ||
52 | # Do basic data format validation. | 52 | # Do basic data format validation. |
53 | self.assertEqual(expected_event_name, log_entry['event']) | 53 | if expected_event_name: |
54 | self.assertEqual(expected_event_name, log_entry['event']) | ||
54 | if full_sid: | 55 | if full_sid: |
55 | self.assertRegex(log_entry['sid'], self.FULL_SID_REGEX) | 56 | self.assertRegex(log_entry['sid'], self.FULL_SID_REGEX) |
56 | else: | 57 | else: |
@@ -246,6 +247,7 @@ class EventLogTestCase(unittest.TestCase): | |||
246 | 'git.foo': 'bar', | 247 | 'git.foo': 'bar', |
247 | 'repo.partialclone': 'false', | 248 | 'repo.partialclone': 'false', |
248 | 'repo.syncstate.superproject.hassuperprojecttag': 'true', | 249 | 'repo.syncstate.superproject.hassuperprojecttag': 'true', |
250 | 'repo.syncstate.superproject.sys.argv': ['--', 'sync', 'protobuf'], | ||
249 | } | 251 | } |
250 | prefix_value = 'prefix' | 252 | prefix_value = 'prefix' |
251 | self._event_log_module.LogDataConfigEvents(config, prefix_value) | 253 | self._event_log_module.LogDataConfigEvents(config, prefix_value) |
@@ -254,17 +256,18 @@ class EventLogTestCase(unittest.TestCase): | |||
254 | log_path = self._event_log_module.Write(path=tempdir) | 256 | log_path = self._event_log_module.Write(path=tempdir) |
255 | self._log_data = self.readLog(log_path) | 257 | self._log_data = self.readLog(log_path) |
256 | 258 | ||
257 | self.assertEqual(len(self._log_data), 4) | 259 | self.assertEqual(len(self._log_data), 5) |
258 | data_events = self._log_data[1:] | 260 | data_events = self._log_data[1:] |
259 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') | 261 | self.verifyCommonKeys(self._log_data[0], expected_event_name='version') |
260 | 262 | ||
261 | for event in data_events: | 263 | for event in data_events: |
262 | self.verifyCommonKeys(event, expected_event_name='data') | 264 | self.verifyCommonKeys(event) |
263 | # Check for 'data' event specific fields. | 265 | # Check for 'data' event specific fields. |
264 | self.assertIn('key', event) | 266 | self.assertIn('key', event) |
265 | self.assertIn('value', event) | 267 | self.assertIn('value', event) |
266 | key = event['key'].removeprefix(f'{prefix_value}/') | 268 | key = event['key'].removeprefix(f'{prefix_value}/') |
267 | value = event['value'] | 269 | value = event['value'] |
270 | self.assertEqual(self._event_log_module.GetDataEventName(key), event['event']) | ||
268 | self.assertTrue(key in config and value == config[key]) | 271 | self.assertTrue(key in config and value == config[key]) |
269 | 272 | ||
270 | def test_error_event(self): | 273 | def test_error_event(self): |