Skip to content

Commit cd44bc1

Browse files
🧪 Add unit test coverage for build_system_init_message
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
1 parent 9ec2e9d commit cd44bc1

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

tests/test_system_init.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
from __future__ import annotations
2+
3+
import unittest
4+
from unittest.mock import patch, MagicMock
5+
6+
from src.system_init import build_system_init_message
7+
from src.setup import SetupReport, WorkspaceSetup
8+
9+
10+
class TestSystemInit(unittest.TestCase):
11+
@patch("src.system_init.get_tools")
12+
@patch("src.system_init.get_commands")
13+
@patch("src.system_init.built_in_command_names")
14+
@patch("src.system_init.run_setup")
15+
def test_build_system_init_message_trusted(
16+
self, mock_run_setup: MagicMock, mock_built_in: MagicMock, mock_get_commands: MagicMock, mock_get_tools: MagicMock
17+
) -> None:
18+
# Setup mocks
19+
mock_setup = MagicMock(spec=SetupReport)
20+
mock_setup.trusted = True
21+
mock_workspace = MagicMock(spec=WorkspaceSetup)
22+
mock_workspace.startup_steps.return_value = ("step 1", "step 2")
23+
mock_setup.setup = mock_workspace
24+
mock_run_setup.return_value = mock_setup
25+
26+
mock_built_in.return_value = ["cmd1", "cmd2"]
27+
mock_get_commands.return_value = [1, 2, 3, 4] # Length 4
28+
mock_get_tools.return_value = [1, 2, 3] # Length 3
29+
30+
# Call the function
31+
result = build_system_init_message(trusted=True)
32+
33+
# Assertions
34+
mock_run_setup.assert_called_once_with(trusted=True)
35+
36+
expected_lines = [
37+
"# System Init",
38+
"",
39+
"Trusted: True",
40+
"Built-in command names: 2",
41+
"Loaded command entries: 4",
42+
"Loaded tool entries: 3",
43+
"",
44+
"Startup steps:",
45+
"- step 1",
46+
"- step 2",
47+
]
48+
self.assertEqual(result, "\n".join(expected_lines))
49+
50+
@patch("src.system_init.get_tools")
51+
@patch("src.system_init.get_commands")
52+
@patch("src.system_init.built_in_command_names")
53+
@patch("src.system_init.run_setup")
54+
def test_build_system_init_message_untrusted(
55+
self, mock_run_setup: MagicMock, mock_built_in: MagicMock, mock_get_commands: MagicMock, mock_get_tools: MagicMock
56+
) -> None:
57+
# Setup mocks
58+
mock_setup = MagicMock(spec=SetupReport)
59+
mock_setup.trusted = False
60+
mock_workspace = MagicMock(spec=WorkspaceSetup)
61+
mock_workspace.startup_steps.return_value = ("only safe step",)
62+
mock_setup.setup = mock_workspace
63+
mock_run_setup.return_value = mock_setup
64+
65+
mock_built_in.return_value = []
66+
mock_get_commands.return_value = []
67+
mock_get_tools.return_value = []
68+
69+
# Call the function
70+
result = build_system_init_message(trusted=False)
71+
72+
# Assertions
73+
mock_run_setup.assert_called_once_with(trusted=False)
74+
75+
expected_lines = [
76+
"# System Init",
77+
"",
78+
"Trusted: False",
79+
"Built-in command names: 0",
80+
"Loaded command entries: 0",
81+
"Loaded tool entries: 0",
82+
"",
83+
"Startup steps:",
84+
"- only safe step",
85+
]
86+
self.assertEqual(result, "\n".join(expected_lines))
87+
88+
89+
if __name__ == "__main__":
90+
unittest.main()

0 commit comments

Comments
 (0)