Skip to content

Commit 27c283b

Browse files
committed
Fix programmatic interface tests using the new json structure
1 parent 910aee3 commit 27c283b

File tree

1 file changed

+80
-20
lines changed

1 file changed

+80
-20
lines changed

tests/integration/test_programmatic_interface.py

Lines changed: 80 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,19 @@ def test_resolve_host_dependencies_default_args(
2929

3030
mock_orchestrator_instance = MagicMock()
3131
mock_orchestrator.return_value = mock_orchestrator_instance
32-
mock_dependencies = {"pip": [{"name": "requests", "version": "2.28.0"}]}
32+
mock_dependencies = {
33+
"source": {"type": "host", "name": "local-host"},
34+
"project": {
35+
"pip": {"location": "/home/user/.local/lib/python3.12/site-packages", "hash": "sha256:abc123..."},
36+
"packages": [{"name": "requests", "version": "2.28.0", "type": "pip"}],
37+
},
38+
"system": {"packages": []},
39+
}
3340
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
3441

3542
mock_formatter_instance = MagicMock()
3643
mock_formatter.return_value = mock_formatter_instance
37-
mock_formatter_instance.format_json.return_value = '{"pip": [{"name": "requests", "version": "2.28.0"}]}'
44+
mock_formatter_instance.format_json.return_value = '{"source": {"type": "host", "name": "local-host"}, "project": {"pip": {"location": "/home/user/.local/lib/python3.12/site-packages", "hash": "sha256:abc123..."}, "packages": [{"name": "requests", "version": "2.28.0", "type": "pip"}]}, "system": {"packages": []}}'
3845

3946
# Call function
4047
result = resolve_host_dependencies()
@@ -46,7 +53,10 @@ def test_resolve_host_dependencies_default_args(
4653
mock_formatter.assert_called_once_with(debug=False)
4754
mock_formatter_instance.format_json.assert_called_once_with(mock_dependencies, pretty_print=False)
4855

49-
assert result == '{"pip": [{"name": "requests", "version": "2.28.0"}]}'
56+
assert (
57+
result
58+
== '{"source": {"type": "host", "name": "local-host"}, "project": {"pip": {"location": "/home/user/.local/lib/python3.12/site-packages", "hash": "sha256:abc123..."}, "packages": [{"name": "requests", "version": "2.28.0", "type": "pip"}]}, "system": {"packages": []}}'
59+
)
5060

5161
@patch("dependency_resolver.Orchestrator")
5262
@patch("dependency_resolver.HostExecutor")
@@ -61,14 +71,19 @@ def test_resolve_host_dependencies_with_all_args(
6171

6272
mock_orchestrator_instance = MagicMock()
6373
mock_orchestrator.return_value = mock_orchestrator_instance
64-
mock_dependencies = {"npm": [{"name": "express", "version": "4.18.0"}]}
74+
mock_dependencies = {
75+
"source": {"type": "host", "name": "local-host"},
76+
"project": {
77+
"npm": {"location": "/tmp/test/node_modules", "hash": "sha256:npm456..."},
78+
"packages": [{"name": "express", "version": "4.18.0", "type": "npm"}],
79+
},
80+
"system": {"packages": []},
81+
}
6582
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
6683

6784
mock_formatter_instance = MagicMock()
6885
mock_formatter.return_value = mock_formatter_instance
69-
mock_formatter_instance.format_json.return_value = (
70-
'{\n "npm": [\n {\n "name": "express",\n "version": "4.18.0"\n }\n ]\n}'
71-
)
86+
mock_formatter_instance.format_json.return_value = '{\n "source": {\n "type": "host",\n "name": "local-host"\n },\n "project": {\n "npm": {\n "location": "/tmp/test/node_modules",\n "hash": "sha256:npm456..."\n },\n "packages": [\n {\n "name": "express",\n "version": "4.18.0",\n "type": "npm"\n }\n ]\n },\n "system": {\n "packages": []\n }\n}'
7287

7388
# Call function with all arguments
7489
resolve_host_dependencies(
@@ -98,14 +113,25 @@ def test_resolve_docker_dependencies_default_args(
98113

99114
mock_orchestrator_instance = MagicMock()
100115
mock_orchestrator.return_value = mock_orchestrator_instance
101-
mock_dependencies = {"dpkg": [{"name": "curl", "version": "7.81.0-1ubuntu1.4"}]}
116+
mock_dependencies = {
117+
"source": {
118+
"type": "container",
119+
"name": "test-container",
120+
"image": "ubuntu:20.04",
121+
"hash": "sha256:abc123...",
122+
},
123+
"project": {"packages": []},
124+
"system": {
125+
"packages": [
126+
{"name": "curl", "version": "7.81.0-1ubuntu1.4", "hash": "sha256:def456...", "type": "dpkg"}
127+
]
128+
},
129+
}
102130
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
103131

104132
mock_formatter_instance = MagicMock()
105133
mock_formatter.return_value = mock_formatter_instance
106-
mock_formatter_instance.format_json.return_value = (
107-
'{"dpkg": [{"name": "curl", "version": "7.81.0-1ubuntu1.4"}]}'
108-
)
134+
mock_formatter_instance.format_json.return_value = '{"source": {"type": "container", "name": "test-container", "image": "ubuntu:20.04", "hash": "sha256:abc123..."}, "project": {"packages": []}, "system": {"packages": [{"name": "curl", "version": "7.81.0-1ubuntu1.4", "hash": "sha256:def456...", "type": "dpkg"}]}}'
109135

110136
# Call function
111137
result = resolve_docker_dependencies("test-container")
@@ -117,7 +143,10 @@ def test_resolve_docker_dependencies_default_args(
117143
mock_formatter.assert_called_once_with(debug=False)
118144
mock_formatter_instance.format_json.assert_called_once_with(mock_dependencies, pretty_print=False)
119145

120-
assert result == '{"dpkg": [{"name": "curl", "version": "7.81.0-1ubuntu1.4"}]}'
146+
assert (
147+
result
148+
== '{"source": {"type": "container", "name": "test-container", "image": "ubuntu:20.04", "hash": "sha256:abc123..."}, "project": {"packages": []}, "system": {"packages": [{"name": "curl", "version": "7.81.0-1ubuntu1.4", "hash": "sha256:def456...", "type": "dpkg"}]}}'
149+
)
121150

122151
@patch("dependency_resolver.Orchestrator")
123152
@patch("dependency_resolver.DockerExecutor")
@@ -132,14 +161,14 @@ def test_resolve_docker_dependencies_with_all_args(
132161

133162
mock_orchestrator_instance = MagicMock()
134163
mock_orchestrator.return_value = mock_orchestrator_instance
135-
mock_dependencies = {"container_info": {"id": "abc123", "image": "ubuntu:20.04"}}
164+
mock_dependencies = {
165+
"source": {"type": "container", "name": "my-container", "image": "ubuntu:20.04", "hash": "sha256:abc123..."}
166+
}
136167
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
137168

138169
mock_formatter_instance = MagicMock()
139170
mock_formatter.return_value = mock_formatter_instance
140-
mock_formatter_instance.format_json.return_value = (
141-
'{\n "container_info": {\n "id": "abc123",\n "image": "ubuntu:20.04"\n }\n}'
142-
)
171+
mock_formatter_instance.format_json.return_value = '{\n "source": {\n "type": "container",\n "name": "my-container",\n "image": "ubuntu:20.04",\n "hash": "sha256:abc123..."\n }\n}'
143172

144173
# Call function with all arguments
145174
resolve_docker_dependencies(
@@ -173,7 +202,14 @@ def test_resolve_dependencies_as_dict_host(self, mock_host_executor: Any, mock_o
173202

174203
mock_orchestrator_instance = MagicMock()
175204
mock_orchestrator.return_value = mock_orchestrator_instance
176-
mock_dependencies = {"pip": [{"name": "flask", "version": "2.2.0"}]}
205+
mock_dependencies = {
206+
"source": {"type": "host", "name": "local-host"},
207+
"project": {
208+
"pip": {"location": "/home/user/.local/lib/python3.12/site-packages", "hash": "sha256:abc123..."},
209+
"packages": [{"name": "flask", "version": "2.2.0", "type": "pip"}],
210+
},
211+
"system": {"packages": []},
212+
}
177213
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
178214

179215
# Call function
@@ -196,7 +232,18 @@ def test_resolve_dependencies_as_dict_docker(self, mock_docker_executor: Any, mo
196232

197233
mock_orchestrator_instance = MagicMock()
198234
mock_orchestrator.return_value = mock_orchestrator_instance
199-
mock_dependencies = {"apk": [{"name": "git", "version": "2.36.2-r0"}]}
235+
mock_dependencies = {
236+
"source": {
237+
"type": "container",
238+
"name": "alpine-container",
239+
"image": "alpine:3.18",
240+
"hash": "sha256:def456...",
241+
},
242+
"project": {"packages": []},
243+
"system": {
244+
"packages": [{"name": "git", "version": "2.36.2-r0", "hash": "sha256:ghi789...", "type": "apk"}]
245+
},
246+
}
200247
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
201248

202249
# Call function
@@ -235,7 +282,20 @@ def test_resolve_docker_dependencies_as_dict_default_args(
235282

236283
mock_orchestrator_instance = MagicMock()
237284
mock_orchestrator.return_value = mock_orchestrator_instance
238-
mock_dependencies = {"dpkg": [{"name": "curl", "version": "7.81.0-1ubuntu1.4"}]}
285+
mock_dependencies = {
286+
"source": {
287+
"type": "container",
288+
"name": "test-container",
289+
"image": "ubuntu:20.04",
290+
"hash": "sha256:abc123...",
291+
},
292+
"project": {"packages": []},
293+
"system": {
294+
"packages": [
295+
{"name": "curl", "version": "7.81.0-1ubuntu1.4", "hash": "sha256:def456...", "type": "dpkg"}
296+
]
297+
},
298+
}
239299
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
240300

241301
# Call function
@@ -261,7 +321,7 @@ def test_resolve_docker_dependencies_as_dict_with_all_args(
261321
mock_orchestrator_instance = MagicMock()
262322
mock_orchestrator.return_value = mock_orchestrator_instance
263323
mock_dependencies = {
264-
"source": {"type": "container", "name": "my-container", "image": "ubuntu:20.04", "hash": "abc123"}
324+
"source": {"type": "container", "name": "my-container", "image": "ubuntu:20.04", "hash": "sha256:abc123..."}
265325
}
266326
mock_orchestrator_instance.resolve_dependencies.return_value = mock_dependencies
267327

0 commit comments

Comments
 (0)