1- from operatorcert .entrypoints import fbc_onboarding
2- from unittest .mock import MagicMock , patch
1+ import os
32from unittest import mock
3+ from unittest .mock import MagicMock , patch
4+
45import pytest
6+ from operatorcert .entrypoints import fbc_onboarding
57
68
79def test_setup_argparser () -> None :
@@ -60,9 +62,7 @@ def test_get_supported_catalogs_stage(mock_requests: MagicMock) -> None:
6062@patch ("operatorcert.entrypoints.fbc_onboarding.run_command" )
6163def test_opm_cache (mock_command : MagicMock ) -> None :
6264 resp = fbc_onboarding .opm_cache ("image" )
63- mock_command .assert_called_once_with (
64- ["opm" , "render" , "-o" , "yaml" , "--migrate" , "image" ]
65- )
65+ mock_command .assert_called_once_with (["opm" , "render" , "-o" , "yaml" , "image" ])
6666 assert resp == mock_command .return_value .stdout
6767
6868
@@ -142,78 +142,6 @@ def test_generate_and_save_base_templates(
142142 mock_yaml_dump .assert_called_once ()
143143
144144
145- def test_generate_composite_templates () -> None :
146- versions = ["1" , "2" ]
147- operator = MagicMock ()
148- operator .operator_name = "op"
149- catalogs , contributions = fbc_onboarding .generate_composite_templates (
150- operator , versions
151- )
152-
153- assert catalogs == {
154- "catalogs" : [
155- {
156- "builders" : ["olm.builder.basic" , "olm.builder.semver" ],
157- "destination" : {"workingDir" : "../../catalogs/v1" },
158- "name" : "v1" ,
159- },
160- {
161- "builders" : ["olm.builder.basic" , "olm.builder.semver" ],
162- "destination" : {"workingDir" : "../../catalogs/v2" },
163- "name" : "v2" ,
164- },
165- ],
166- "schema" : "olm.composite.catalogs" ,
167- }
168- assert contributions == {
169- "schema" : "olm.composite" ,
170- "components" : [
171- {
172- "destination" : {"path" : "op" },
173- "name" : "v1" ,
174- "strategy" : {
175- "name" : "basic" ,
176- "template" : {
177- "config" : {
178- "input" : "catalog-templates/v1.yaml" ,
179- "output" : "catalog.yaml" ,
180- },
181- "schema" : "olm.builder.basic" ,
182- },
183- },
184- },
185- {
186- "destination" : {"path" : "op" },
187- "name" : "v2" ,
188- "strategy" : {
189- "name" : "basic" ,
190- "template" : {
191- "config" : {
192- "input" : "catalog-templates/v2.yaml" ,
193- "output" : "catalog.yaml" ,
194- },
195- "schema" : "olm.builder.basic" ,
196- },
197- },
198- },
199- ],
200- }
201-
202-
203- @patch ("operatorcert.entrypoints.fbc_onboarding.yaml.safe_dump" )
204- @patch ("operatorcert.entrypoints.fbc_onboarding.generate_composite_templates" )
205- def test_generate_and_save_composite_templates (
206- mock_template : MagicMock , mock_yaml_dump : MagicMock
207- ) -> None :
208- operator = MagicMock ()
209- mock_template .return_value = ({}, {})
210- with mock .patch ("builtins.open" , mock .mock_open ()) as mock_open :
211- fbc_onboarding .generate_and_save_composite_templates (operator , ["1" , "2" ])
212-
213- mock_template .assert_called_once ()
214- assert mock_yaml_dump .call_count == 2
215-
216-
217145@patch ("operatorcert.entrypoints.fbc_onboarding.yaml.safe_dump" )
218146def test_update_operator_config (mock_yaml_dump : MagicMock ) -> None :
219147 operator = MagicMock ()
@@ -227,29 +155,45 @@ def test_update_operator_config(mock_yaml_dump: MagicMock) -> None:
227155 )
228156
229157
158+ @patch ("operatorcert.entrypoints.fbc_onboarding.yaml.safe_dump_all" )
159+ @patch ("operatorcert.entrypoints.fbc_onboarding.yaml.safe_load_all" )
160+ @patch ("operatorcert.entrypoints.fbc_onboarding.os.makedirs" )
161+ @patch ("operatorcert.entrypoints.fbc_onboarding.os.path.exists" )
230162@patch ("operatorcert.entrypoints.fbc_onboarding.run_command" )
231- def test_render_fbc_from_template (mock_run_command : MagicMock ) -> None :
163+ def test_render_fbc_from_template (
164+ mock_run_command : MagicMock ,
165+ mock_path_exists : MagicMock ,
166+ mock_makedir : MagicMock ,
167+ mock_safe_load_all : MagicMock ,
168+ mock_safe_dump_all : MagicMock ,
169+ ) -> None :
232170 operator = MagicMock ()
233- fbc_onboarding .render_fbc_from_template (operator )
234-
235- mock_run_command .assert_called_once_with (
236- [
237- "opm" ,
238- "alpha" ,
239- "render-template" ,
240- "composite" ,
241- "-f" ,
242- fbc_onboarding .COMPOSITE_TEMPLATE_CATALOGS ,
243- "-c" ,
244- fbc_onboarding .COMPOSITE_TEMPLATE_CONTRIBUTIONS ,
245- ],
246- cwd = operator .root ,
247- )
171+ mock_path_exists .return_value = False
172+ mock_safe_load_all .return_value = []
173+
174+ with mock .patch ("builtins.open" , mock .mock_open ()) as mock_open :
175+ fbc_onboarding .render_fbc_from_template (operator , "4.15" )
176+
177+ mock_run_command .assert_called_once_with (
178+ [
179+ "opm" ,
180+ "alpha" ,
181+ "render-template" ,
182+ "basic" ,
183+ "-o" ,
184+ "yaml" ,
185+ os .path .join (
186+ operator .root , fbc_onboarding .CATALOG_TEMPLATES_DIR , "v4.15.yaml"
187+ ),
188+ ],
189+ cwd = operator .root ,
190+ )
191+ mock_makedir .assert_called_once ()
192+ mock_safe_dump_all .assert_called_once ()
248193
249194
250195@patch ("operatorcert.entrypoints.fbc_onboarding.update_operator_config" )
251196@patch ("operatorcert.entrypoints.fbc_onboarding.render_fbc_from_template" )
252- @patch ("operatorcert.entrypoints.fbc_onboarding.generate_and_save_composite_templates" )
253197@patch ("operatorcert.entrypoints.fbc_onboarding.generate_and_save_base_templates" )
254198@patch ("operatorcert.entrypoints.fbc_onboarding.build_cache" )
255199@patch (
@@ -261,7 +205,6 @@ def test_onboard_operator_to_fbc(
261205 mock_template_dir : MagicMock ,
262206 mock_cache : MagicMock ,
263207 mock_base_template : MagicMock ,
264- mock_composite_template : MagicMock ,
265208 mock_render : MagicMock ,
266209 mock_config : MagicMock ,
267210) -> None :
@@ -280,6 +223,6 @@ def test_onboard_operator_to_fbc(
280223 assert mock_cache .call_count == 2
281224 assert mock_base_template .call_count == 2
282225
283- mock_composite_template . assert_called_once_with ( operator , [ "1" , "2" ])
284- mock_render . assert_called_once_with ( operator )
226+ mock_render . assert_has_calls ([ mock . call ( operator , "1" ), mock . call ( operator , "2" ) ])
227+
285228 mock_config .assert_called_once_with (operator )
0 commit comments