Don't test candidate files if they're removed
The routine to determine which files to check for candidacies, when used to analyze files being changed with --HEAD, should only test those files if they are being kept by the change. If they're being deleted, then there is no reason to test them. Further, testing files which are slated for removal makes it basically impossible to revert a previously merged candidacy which has since been invalidated (for example, by resigning OSF Individual Membership). Mock os.path.exists in test_find_modified_candidate_files_all_good to just return True, since we aren't actually creating the file in that test. Change-Id: I4d5d9b1d55379adfd1c7d7765324306abf40cdb7
This commit is contained in:
parent
0c2b4aae53
commit
4570981c1b
@ -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
|
||||
|
@ -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'
|
||||
|
Loading…
Reference in New Issue
Block a user