1010
1111
1212def  test_default_download (dda , helpers , isolation , mocker ):
13+     args  =  ["build" , "//..." ]
14+     mocker .patch ("dda.cli.base._get_argv" , return_value = ["dda" , "bzl" , * args ])
1315    downloader  =  mocker .patch ("dda.utils.network.http.manager.HTTPClientManager.download" )
1416    subprocess_runner  =  mocker .patch ("subprocess.run" , return_value = subprocess .CompletedProcess (args = [], returncode = 0 ))
1517
1618    with  EnvVars (exclude = ["PATH" ]):
17-         result  =  dda ("build " , "bazel" ,  "build" ,  "//..." )
19+         result  =  dda ("bzl " , * args )
1820
1921    assert  result .exit_code  ==  0 , result .output 
2022    assert  result .output  ==  helpers .dedent (
@@ -28,24 +30,26 @@ def test_default_download(dda, helpers, isolation, mocker):
2830        get_download_url (),
2931        path = internal_bazel_path ,
3032    )
31-     subprocess_runner .assert_called_once_with ([str (internal_bazel_path ), "build" ,  "//..." ])
33+     subprocess_runner .assert_called_once_with ([str (internal_bazel_path ), * args ])
3234
3335
3436def  test_default_exists (dda , helpers , temp_dir , mocker ):
3537    external_bazel_path  =  temp_dir .joinpath ("bazel" ).as_exe ()
3638    helpers .create_binary (external_bazel_path )
3739
40+     args  =  ["build" , "//..." ]
41+     mocker .patch ("dda.cli.base._get_argv" , return_value = ["dda" , "bzl" , * args ])
3842    downloader  =  mocker .patch ("dda.utils.network.http.manager.HTTPClientManager.download" )
3943    subprocess_runner  =  mocker .patch ("subprocess.run" , return_value = subprocess .CompletedProcess (args = [], returncode = 0 ))
4044
4145    with  EnvVars ({"PATH" : str (temp_dir )}):
42-         result  =  dda ("build " , "bazel" ,  "build" ,  "//..." )
46+         result  =  dda ("bzl " , * args )
4347
4448    assert  result .exit_code  ==  0 , result .output 
4549    assert  not  result .output 
4650
4751    downloader .assert_not_called ()
48-     subprocess_runner .assert_called_once_with ([str (external_bazel_path ), "build" ,  "//..." ])
52+     subprocess_runner .assert_called_once_with ([str (external_bazel_path ), * args ])
4953
5054
5155def  test_config_force_managed (dda , helpers , isolation , config_file , temp_dir , mocker ):
@@ -55,11 +59,13 @@ def test_config_force_managed(dda, helpers, isolation, config_file, temp_dir, mo
5559    external_bazel_path  =  temp_dir .joinpath ("bazel" ).as_exe ()
5660    helpers .create_binary (external_bazel_path )
5761
62+     args  =  ["build" , "//..." ]
63+     mocker .patch ("dda.cli.base._get_argv" , return_value = ["dda" , "bzl" , * args ])
5864    downloader  =  mocker .patch ("dda.utils.network.http.manager.HTTPClientManager.download" )
5965    subprocess_runner  =  mocker .patch ("subprocess.run" , return_value = subprocess .CompletedProcess (args = [], returncode = 0 ))
6066
6167    with  EnvVars ({"PATH" : str (temp_dir )}):
62-         result  =  dda ("build " , "bazel" ,  "build" ,  "//..." )
68+         result  =  dda ("bzl " , * args )
6369
6470    assert  result .exit_code  ==  0 , result .output 
6571    assert  result .output  ==  helpers .dedent (
@@ -73,17 +79,19 @@ def test_config_force_managed(dda, helpers, isolation, config_file, temp_dir, mo
7379        get_download_url (),
7480        path = internal_bazel_path ,
7581    )
76-     subprocess_runner .assert_called_once_with ([str (internal_bazel_path ), "build" ,  "//..." ])
82+     subprocess_runner .assert_called_once_with ([str (internal_bazel_path ), * args ])
7783
7884
7985def  test_config_force_unmanaged (dda , helpers , config_file , mocker ):
8086    config_file .data ["tools" ]["bazel" ]["managed" ] =  False 
8187    config_file .save ()
8288
89+     args  =  ["build" , "//..." ]
90+     mocker .patch ("dda.cli.base._get_argv" , return_value = ["dda" , "bzl" , * args ])
8391    downloader  =  mocker .patch ("dda.utils.network.http.manager.HTTPClientManager.download" )
8492
8593    with  EnvVars (exclude = ["PATH" ]):
86-         result  =  dda ("build " , "bazel" ,  "build" ,  "//..." )
94+         result  =  dda ("bzl " , * args )
8795
8896    assert  result .exit_code  ==  1 , result .output 
8997    assert  result .output  ==  helpers .dedent (
@@ -93,3 +101,20 @@ def test_config_force_unmanaged(dda, helpers, config_file, mocker):
93101    )
94102
95103    downloader .assert_not_called ()
104+ 
105+ 
106+ def  test_arg_interception (dda , config_file , mocker ):
107+     config_file .data ["tools" ]["bazel" ]["managed" ] =  False 
108+     config_file .save ()
109+ 
110+     args  =  ["build" , "--" , "//..." ]
111+     mocker .patch ("dda.cli.base._get_argv" , return_value = ["dda" , "bzl" , * args ])
112+     downloader  =  mocker .patch ("dda.utils.network.http.manager.HTTPClientManager.download" )
113+ 
114+     with  EnvVars (exclude = ["PATH" ]):
115+         result  =  dda ("bzl" , * args )
116+ 
117+     assert  result .exit_code  ==  1 , result .output 
118+     assert  result .output .startswith ("Executable `bazel` not found: ['bazel', 'build', '--target_pattern_file', '" )
119+ 
120+     downloader .assert_not_called ()
0 commit comments