Skip to content

Instantly share code, notes, and snippets.

@HakimCassimallyBBC
Created December 4, 2015 15:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HakimCassimallyBBC/8dbb24f810b493a57091 to your computer and use it in GitHub Desktop.
Save HakimCassimallyBBC/8dbb24f810b493a57091 to your computer and use it in GitHub Desktop.
latest passing commit with itertools
import itertools
test1 = [
('3df947df42a13686382b47a73ca12b2fe535f5a3', ''),
('1d6018219ba9eaeb209f31e91b7d56b77d4fbfc3', 'passed'),
('7295f7c3606109789228ab48c23a7807ec8a3f61', ''),
('ba39eb2f561ef668f0569c57a8ee0e549b05049c', ''),
('f845f3fe4e45e9137da68b45ef43e0611659f4ab', ''),
('ef7e74c7d89faec970e7cae961fd58e45cb69175', ''),
('77255a3aa08d493252d1fb3e2c19967bf4253a59', 'passed'),
('573d1455c93e895d4b1960b9b4ad9cd53c022a3a', ''),
('7b1ecbe27beaafc70067285ab86de09662c4c5d5', ''),
('ed578beae9d397cb12ffdd82cca1925744a64db0', ''),
('e66f1067d64d492683b9210ca8dde57b37d74f9d', ''),
('f60d33430375afa33a36532d9ce947db7689b5c0', ''),
('7e152c03c9a1573e11ef8674d24c9c03b2efcbaf' '')
]
test2 = [
('3df947df42a13686382b47a73ca12b2fe535f5a3', ''),
('1d6018219ba9eaeb209f31e91b7d56b77d4fbfc3', ''),
('7295f7c3606109789228ab48c23a7807ec8a3f61', ''),
('ba39eb2f561ef668f0569c57a8ee0e549b05049c', 'passed'),
('f845f3fe4e45e9137da68b45ef43e0611659f4ab', ''),
('ef7e74c7d89faec970e7cae961fd58e45cb69175', ''),
('77255a3aa08d493252d1fb3e2c19967bf4253a59', 'passed'),
('573d1455c93e895d4b1960b9b4ad9cd53c022a3a', ''),
('7b1ecbe27beaafc70067285ab86de09662c4c5d5', ''),
('ed578beae9d397cb12ffdd82cca1925744a64db0', ''),
('e66f1067d64d492683b9210ca8dde57b37d74f9d', ''),
('f60d33430375afa33a36532d9ce947db7689b5c0', ''),
('7e152c03c9a1573e11ef8674d24c9c03b2efcbaf' '')
]
test3 = [
('3df947df42a13686382b47a73ca12b2fe535f5a3', ''),
('1d6018219ba9eaeb209f31e91b7d56b77d4fbfc3', ''),
('7295f7c3606109789228ab48c23a7807ec8a3f61', ''),
('ba39eb2f561ef668f0569c57a8ee0e549b05049c', ''),
('f845f3fe4e45e9137da68b45ef43e0611659f4ab', 'passed'),
('ef7e74c7d89faec970e7cae961fd58e45cb69175', ''),
('77255a3aa08d493252d1fb3e2c19967bf4253a59', 'passed'),
('573d1455c93e895d4b1960b9b4ad9cd53c022a3a', ''),
('7b1ecbe27beaafc70067285ab86de09662c4c5d5', ''),
('ed578beae9d397cb12ffdd82cca1925744a64db0', ''),
('e66f1067d64d492683b9210ca8dde57b37d74f9d', ''),
('f60d33430375afa33a36532d9ce947db7689b5c0', ''),
('7e152c03c9a1573e11ef8674d24c9c03b2efcbaf' '')
]
def all_passed(tup):
print (tup)
shas = set( sha for (sha,value) in tup)
assert len(shas) == 1
values = set( value for (sha,value) in tup)
return (len(values) == 1) and ('passed' in values)
def get_first(*commit_logs):
stream = itertools.izip(*commit_logs)
passed = itertools.ifilter( all_passed, stream )
commit = next(passed)
return commit[0][0]
print get_first(test1, test2, test3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment