@@ -96,6 +96,8 @@ def test_click_arguments_dependency_file(self, mock_check_dependencies: Mock) ->
9696 load_config_from_file = True ,
9797 package_ecosystem = None ,
9898 recursive = False ,
99+ pypi_source = None ,
100+ npm_source = None ,
99101 )
100102 ]
101103
@@ -121,6 +123,8 @@ def test_click_arguments_dependency_file_in_different_path(self, mock_check_depe
121123 load_config_from_file = True ,
122124 package_ecosystem = None ,
123125 recursive = False ,
126+ pypi_source = None ,
127+ npm_source = None ,
124128 )
125129 ]
126130
@@ -146,6 +150,8 @@ def test_package_ecosystem_option(self, mock_check_dependencies: Mock) -> None:
146150 load_config_from_file = True ,
147151 package_ecosystem = "pypi" ,
148152 recursive = False ,
153+ pypi_source = None ,
154+ npm_source = None ,
149155 )
150156 ]
151157
@@ -170,6 +176,8 @@ def test_click_arguments_single_dependency_cli(self, mock_check_dependencies: Mo
170176 load_config_from_file = True ,
171177 package_ecosystem = None ,
172178 recursive = False ,
179+ pypi_source = None ,
180+ npm_source = None ,
173181 )
174182 ]
175183
@@ -206,6 +214,8 @@ def test_click_arguments_multiple_dependencies(self, mock_check_dependencies: Mo
206214 load_config_from_file = True ,
207215 package_ecosystem = None ,
208216 recursive = False ,
217+ pypi_source = None ,
218+ npm_source = None ,
209219 )
210220 ]
211221
@@ -235,6 +245,8 @@ def test_recursive(self, mock_check_dependencies: Mock) -> None:
235245 load_config_from_file = True ,
236246 package_ecosystem = None ,
237247 recursive = True ,
248+ pypi_source = None ,
249+ npm_source = None ,
238250 )
239251 assert mock_check_dependencies .call_args_list [0 ] == call_args
240252 assert mock_check_dependencies .call_args_list [1 ] == call_args
@@ -255,6 +267,8 @@ def test_click_arguments_default(self, mock_check_dependencies: Mock) -> None:
255267 load_config_from_file = True ,
256268 package_ecosystem = None ,
257269 recursive = False ,
270+ pypi_source = None ,
271+ npm_source = None ,
258272 )
259273 ]
260274
@@ -387,3 +401,89 @@ def test_unhandled_exception_is_caught_and_wrapped_in_cli_error(
387401 assert isinstance (result .exception , SystemExit )
388402 # Check that the generic error message was logged
389403 assert "Unhandled exception occured." in caplog .text
404+
405+ @patch ("twyn.cli.check_dependencies" )
406+ def test_pypi_source_option (self , mock_check_dependencies : Mock ) -> None :
407+ """Test that --pypi-source option is passed correctly."""
408+ runner = CliRunner ()
409+ runner .invoke (
410+ cli .run ,
411+ [
412+ "--pypi-source" ,
413+ "https://custom-pypi.org/" ,
414+ ],
415+ )
416+
417+ assert mock_check_dependencies .call_args_list == [
418+ call (
419+ config_file = None ,
420+ dependency_files = None ,
421+ dependencies = None ,
422+ selector_method = None ,
423+ use_cache = None ,
424+ show_progress_bar = True ,
425+ load_config_from_file = True ,
426+ package_ecosystem = None ,
427+ recursive = False ,
428+ pypi_source = "https://custom-pypi.org/" ,
429+ npm_source = None ,
430+ )
431+ ]
432+
433+ @patch ("twyn.cli.check_dependencies" )
434+ def test_npm_source_option (self , mock_check_dependencies : Mock ) -> None :
435+ """Test that --npm-source option is passed correctly."""
436+ runner = CliRunner ()
437+ runner .invoke (
438+ cli .run ,
439+ [
440+ "--npm-source" ,
441+ "https://custom-npm.org/" ,
442+ ],
443+ )
444+
445+ assert mock_check_dependencies .call_args_list == [
446+ call (
447+ config_file = None ,
448+ dependency_files = None ,
449+ dependencies = None ,
450+ selector_method = None ,
451+ use_cache = None ,
452+ show_progress_bar = True ,
453+ load_config_from_file = True ,
454+ package_ecosystem = None ,
455+ recursive = False ,
456+ pypi_source = None ,
457+ npm_source = "https://custom-npm.org/" ,
458+ )
459+ ]
460+
461+ @patch ("twyn.cli.check_dependencies" )
462+ def test_both_source_options (self , mock_check_dependencies : Mock ) -> None :
463+ """Test that both --pypi-source and --npm-source options work together."""
464+ runner = CliRunner ()
465+ runner .invoke (
466+ cli .run ,
467+ [
468+ "--pypi-source" ,
469+ "https://custom-pypi.org/" ,
470+ "--npm-source" ,
471+ "https://custom-npm.org/" ,
472+ ],
473+ )
474+
475+ assert mock_check_dependencies .call_args_list == [
476+ call (
477+ config_file = None ,
478+ dependency_files = None ,
479+ dependencies = None ,
480+ selector_method = None ,
481+ use_cache = None ,
482+ show_progress_bar = True ,
483+ load_config_from_file = True ,
484+ package_ecosystem = None ,
485+ recursive = False ,
486+ pypi_source = "https://custom-pypi.org/" ,
487+ npm_source = "https://custom-npm.org/" ,
488+ )
489+ ]
0 commit comments