def test_open_prereq_revisions(deleted): if deleted: # Sort prereqs from last to first- delete from end of series back. sort = '-revision_sort_code' else: # Add or move from first to last, so that each "after" is in place. sort = 'revision_sort_code' with mock.patch('%s._same_series_revisions' % IREV) as ssrevs_mock: op_revs = mock.MagicMock() ssrevs_mock.return_value.exclude.return_value \ .filter.return_value \ .filter.return_value \ .order_by.return_value = op_revs ssrevs_mock.return_value.exclude.return_value \ .filter.return_value \ .order_by.return_value = op_revs rev = IssueRevision() rev.id = 1234 rev.deleted = deleted assert rev._open_prereq_revisions() == op_revs if deleted: ssrevs_mock.return_value.exclude.assert_has_calls([ mock.call(id__lte=1234), mock.call().filter(committed=None), mock.call().filter().order_by(sort)]) else: ssrevs_mock.return_value.exclude.assert_has_calls([ mock.call(id__gte=1234), mock.call().filter(committed=None), mock.call().filter().filter(issue=None), mock.call().filter().filter().order_by(sort)])
def test_committed_prereq_revisions(deleted): # We sort commited reversed from open so that we effectively append # to committed as we commit each revision as we walk through open. if deleted: sort = 'revision_sort_code' else: sort = '-revision_sort_code' with mock.patch('%s._same_series_revisions' % IREV) as ssrevs_mock: c_revs = mock.MagicMock() ssrevs_mock.return_value.exclude.return_value \ .filter.return_value \ .order_by.return_value = c_revs rev = IssueRevision() rev.id = 1234 rev.deleted = deleted assert rev._committed_prereq_revisions() == c_revs ssrevs_mock.return_value.exclude.assert_has_calls([ mock.call(id=1234), mock.call().filter(committed=True), mock.call().filter().order_by(sort)])