66from flask import g
77
88from mod_auth .models import Role
9- from mod_ci .controllers import (Workflow_builds , _verify_binary_commit ,
10- get_info_for_pr_comment , is_valid_commit_hash ,
11- progress_type_request , start_platforms )
9+ from mod_ci .controllers import (Workflow_builds , get_info_for_pr_comment ,
10+ is_valid_commit_hash , progress_type_request ,
11+ start_platforms )
1212from mod_ci .models import BlockedUsers
1313from mod_customized .models import CustomizedTest
1414from mod_home .models import CCExtractorVersion , GeneralData
@@ -219,11 +219,8 @@ def test_cron_job_empty_token(self, mock_log):
219219 @mock .patch ('mod_ci.controllers.g' )
220220 @mock .patch ('mod_ci.controllers.TestProgress' )
221221 @mock .patch ('mod_ci.controllers.GcpInstance' )
222- @mock .patch ('mod_ci.controllers._verify_binary_commit' )
223- @mock .patch ('os.chmod' )
224- def test_start_test (self , mock_chmod , mock_verify_binary_commit , mock_gcp_instance ,
225- mock_test_progress , mock_g , mock_open_file ,
226- mock_create_instance , mock_wait_for_operation ):
222+ def test_start_test (self , mock_gcp_instance , mock_test_progress , mock_g ,
223+ mock_open_file , mock_create_instance , mock_wait_for_operation ):
227224 """Test start_test function."""
228225 import zipfile
229226
@@ -269,9 +266,6 @@ def extractall(*args, **kwargs):
269266 mock_query = create_mock_db_query (mock_g )
270267 mock_query .c .got = MagicMock ()
271268
272- # Mock binary verification to succeed
273- mock_verify_binary_commit .return_value = (True , "Binary commit verified" )
274-
275269 # Test when gcp create instance fails
276270 mock_wait_for_operation .return_value = 'error occurred'
277271 start_test (mock .ANY , self .app , mock_g .db , repository , test , mock .ANY )
@@ -286,17 +280,6 @@ def extractall(*args, **kwargs):
286280 mock_create_instance .assert_called_once ()
287281 mock_wait_for_operation .assert_called_once ()
288282
289- # Reset mocks for next test
290- mock_g .db .commit .reset_mock ()
291- mock_create_instance .reset_mock ()
292- mock_wait_for_operation .reset_mock ()
293-
294- # Test when binary commit verification fails
295- mock_verify_binary_commit .return_value = (False , "Binary commit mismatch!" )
296- start_test (mock .ANY , self .app , mock_g .db , repository , test , mock .ANY )
297- # Should not proceed to create instance when verification fails
298- mock_create_instance .assert_not_called ()
299-
300283 @mock .patch ('github.Github.get_repo' )
301284 @mock .patch ('mod_ci.controllers.start_test' )
302285 @mock .patch ('mod_ci.controllers.get_compute_service_object' )
@@ -2381,101 +2364,3 @@ def generate_header(data, event, ci_key=None):
23812364 'utf-8' ), g .github ['ci_key' ] if ci_key is None else ci_key )
23822365 headers = generate_git_api_header (event , sig )
23832366 return headers
2384-
2385-
2386- class TestVerifyBinaryCommit (BaseTestCase ):
2387- """Test the _verify_binary_commit function."""
2388-
2389- @mock .patch ('mod_ci.controllers.subprocess.run' )
2390- def test_verify_binary_commit_success (self , mock_run ):
2391- """Test successful commit verification."""
2392- mock_log = MagicMock ()
2393- expected_commit = "abc123def456"
2394-
2395- # Mock successful --version output
2396- mock_run .return_value = MagicMock (
2397- stdout = "CCExtractor detailed version info\n "
2398- " Version: 0.96\n "
2399- f" Git commit: { expected_commit } \n "
2400- " Compilation date: 2025-12-23\n "
2401- )
2402-
2403- success , message = _verify_binary_commit ("/path/to/ccextractor" , expected_commit , mock_log )
2404-
2405- self .assertTrue (success )
2406- self .assertIn ("verified" , message )
2407- mock_log .info .assert_called ()
2408-
2409- @mock .patch ('mod_ci.controllers.subprocess.run' )
2410- def test_verify_binary_commit_mismatch (self , mock_run ):
2411- """Test commit verification fails on mismatch."""
2412- mock_log = MagicMock ()
2413- expected_commit = "abc123def456"
2414- actual_commit = "different789"
2415-
2416- mock_run .return_value = MagicMock (
2417- stdout = f" Git commit: { actual_commit } \n "
2418- )
2419-
2420- success , message = _verify_binary_commit ("/path/to/ccextractor" , expected_commit , mock_log )
2421-
2422- self .assertFalse (success )
2423- self .assertIn ("mismatch" , message )
2424- self .assertIn (expected_commit , message )
2425- self .assertIn (actual_commit , message )
2426- mock_log .error .assert_called ()
2427-
2428- @mock .patch ('mod_ci.controllers.subprocess.run' )
2429- def test_verify_binary_commit_no_git_line (self , mock_run ):
2430- """Test verification fails when Git commit line is missing."""
2431- mock_log = MagicMock ()
2432-
2433- mock_run .return_value = MagicMock (
2434- stdout = "CCExtractor version info\n Version: 0.96\n "
2435- )
2436-
2437- success , message = _verify_binary_commit ("/path/to/ccextractor" , "abc123" , mock_log )
2438-
2439- self .assertFalse (success )
2440- self .assertIn ("Could not find Git commit" , message )
2441- mock_log .error .assert_called ()
2442-
2443- @mock .patch ('mod_ci.controllers.subprocess.run' )
2444- def test_verify_binary_commit_timeout (self , mock_run ):
2445- """Test verification handles timeout."""
2446- import subprocess
2447- mock_log = MagicMock ()
2448-
2449- mock_run .side_effect = subprocess .TimeoutExpired (cmd = "test" , timeout = 30 )
2450-
2451- success , message = _verify_binary_commit ("/path/to/ccextractor" , "abc123" , mock_log )
2452-
2453- self .assertFalse (success )
2454- self .assertIn ("timed out" , message )
2455- mock_log .error .assert_called ()
2456-
2457- @mock .patch ('mod_ci.controllers.subprocess.run' )
2458- def test_verify_binary_commit_file_not_found (self , mock_run ):
2459- """Test verification handles missing binary."""
2460- mock_log = MagicMock ()
2461-
2462- mock_run .side_effect = FileNotFoundError ()
2463-
2464- success , message = _verify_binary_commit ("/path/to/ccextractor" , "abc123" , mock_log )
2465-
2466- self .assertFalse (success )
2467- self .assertIn ("not found" , message )
2468- mock_log .error .assert_called ()
2469-
2470- @mock .patch ('mod_ci.controllers.subprocess.run' )
2471- def test_verify_binary_commit_generic_exception (self , mock_run ):
2472- """Test verification handles unexpected exceptions."""
2473- mock_log = MagicMock ()
2474-
2475- mock_run .side_effect = Exception ("Unexpected error" )
2476-
2477- success , message = _verify_binary_commit ("/path/to/ccextractor" , "abc123" , mock_log )
2478-
2479- self .assertFalse (success )
2480- self .assertIn ("Error verifying" , message )
2481- mock_log .error .assert_called ()
0 commit comments