summaryrefslogtreecommitdiffstats
path: root/tests/test_git_trace2_event_log.py
diff options
context:
space:
mode:
authorRaman Tenneti <rtenneti@google.com>2021-03-16 14:24:14 -0700
committerRaman Tenneti <rtenneti@google.com>2021-03-18 14:58:24 +0000
commita5b40a28450c965bb4b77656820fdd0a78768fe4 (patch)
treeb7ecf5bad6ea40c131f4736065ff748ab995ef86 /tests/test_git_trace2_event_log.py
parent511a0e54f5801a3f36c00fac478a596d83867d10 (diff)
downloadgit-repo-a5b40a28450c965bb4b77656820fdd0a78768fe4.tar.gz
repo: Add a new "command" event type to git trace2 logging in repo.
Add a new "event": "command", which is emitted at when all command arguments have been processed. Additional fields: "name": Name of the primary command (ex: repo, git) "subcommands"': List of the sub-commands once command-line arguments are processed Examples: Command: repo --version Event: {"event": "command", <common fields>, "name": "repo", "subcommands": ["version"] } Bug: [google internal] b/178507266 Testing: - Unit tests - Verified repo git trace2 logs had expected data Change-Id: I825bd0ecedee45135382461a4ba10f987f09aef3 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/300343 Reviewed-by: Ian Kasprzak <iankaz@google.com> Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: Raman Tenneti <rtenneti@google.com>
Diffstat (limited to 'tests/test_git_trace2_event_log.py')
-rw-r--r--tests/test_git_trace2_event_log.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_git_trace2_event_log.py b/tests/test_git_trace2_event_log.py
index 3c5cb150..4a3a4c48 100644
--- a/tests/test_git_trace2_event_log.py
+++ b/tests/test_git_trace2_event_log.py
@@ -161,6 +161,30 @@ class EventLogTestCase(unittest.TestCase):
161 self.assertIn('code', exit_event) 161 self.assertIn('code', exit_event)
162 self.assertEqual(exit_event['code'], 2) 162 self.assertEqual(exit_event['code'], 2)
163 163
164 def test_command_event(self):
165 """Test and validate 'command' event data is valid.
166
167 Expected event log:
168 <version event>
169 <command event>
170 """
171 name = 'repo'
172 subcommands = ['init' 'this']
173 self._event_log_module.CommandEvent(name='repo', subcommands=subcommands)
174 with tempfile.TemporaryDirectory(prefix='event_log_tests') as tempdir:
175 log_path = self._event_log_module.Write(path=tempdir)
176 self._log_data = self.readLog(log_path)
177
178 self.assertEqual(len(self._log_data), 2)
179 command_event = self._log_data[1]
180 self.verifyCommonKeys(self._log_data[0], expected_event_name='version')
181 self.verifyCommonKeys(command_event, expected_event_name='command')
182 # Check for 'command' event specific fields.
183 self.assertIn('name', command_event)
184 self.assertIn('subcommands', command_event)
185 self.assertEqual(command_event['name'], name)
186 self.assertEqual(command_event['subcommands'], subcommands)
187
164 def test_def_params_event_repo_config(self): 188 def test_def_params_event_repo_config(self):
165 """Test 'def_params' event data outputs only repo config keys. 189 """Test 'def_params' event data outputs only repo config keys.
166 190