diff --git a/openstack_election/cmds/ci_check_all_candidate_files.py b/openstack_election/cmds/ci_check_all_candidate_files.py index 18159795..deab27b8 100755 --- a/openstack_election/cmds/ci_check_all_candidate_files.py +++ b/openstack_election/cmds/ci_check_all_candidate_files.py @@ -76,7 +76,7 @@ def check_for_changes(projects, filepath, limit, verbose=0): def find_modified_candidate_files(): - "Return a list of files modified by the most recent commit." + "Return a list of non-removed files modified by the most recent commit." results = subprocess.check_output( ['git', 'diff', '--name-only', '--pretty=format:', 'HEAD^'] ).decode('utf-8') @@ -84,6 +84,7 @@ def find_modified_candidate_files(): li.strip() for li in results.splitlines() if (li.startswith(utils.CANDIDATE_PATH + '/') and + os.path.exists(li) and not li.endswith('.placeholder')) ] return filenames diff --git a/openstack_election/tests/cmds/test_ci_checks.py b/openstack_election/tests/cmds/test_ci_checks.py index ade0d22c..a46e196b 100644 --- a/openstack_election/tests/cmds/test_ci_checks.py +++ b/openstack_election/tests/cmds/test_ci_checks.py @@ -37,8 +37,10 @@ class TestFindModifiedCandidateFiles(base.ElectionTestCase): ci_check_all_candidate_files.find_modified_candidate_files() self.assertEqual(expected_filenames, filenames) + @mock.patch('os.path.exists', return_value=True) @mock.patch('subprocess.check_output') - def test_find_modified_candidate_files_all_good(self, mock_check_output): + def test_find_modified_candidate_files_all_good( + self, mock_check_output, mock_path_exists): check_output = (('configuration.yaml\n' 'openstack_election/__init__py\n' '%(path)s/candidate\n'