def test_collect_claims_from_html(self): butler = MetaButler(self.config) butler.data = { "jobs": { "http://ci.dev/job/unit_tests": {"name": "unit_tests"}, "http://ci.dev/job/acceptance_tests": {"name": "acceptance_tests"} } } html_content = """ <table class="sortable pane bigtable" id="projectStatus"> <tr> <td data="0"><a href="/job/unit_tests/21891/"><img alt="Failed" src="/static/bad8f36c/images/32x32/red.png" /></a></td> <td><a href="/job/unit_tests/">unit_tests</a> <a href="/job/unit_tests/21891/">#21891</a></td> <td data="2011-08-30T11:05:51Z">41 sec</td> <td data="2011-08-19T02:50:26Z">11 days</td> <td>claimed by Gob Bluth</td> <td></td> </tr> <tr> <td data="0"><a href="/job/acceptance_tests/2669/"><img alt="Failed" src="/static/bad8f36c/images/32x32/red.png" /></a></td> <td><a href="/job/acceptance_tests/">acceptance_tests</a> <a href="/job/acceptance_tests/2669/">#2669</a></td> <td data="2011-08-29T16:05:46Z">19 hr</td> <td data="2011-08-22T16:05:46Z">7 days 19 hr</td> <td>claimed by Michael Bluth</td> <td></td> </tr> </table> """ butler.collect_claims_from_html('http://ci.dev/', html_content) assert butler.data["jobs"]["http://ci.dev/job/unit_tests"]['claim'] == "Gob Bluth" assert butler.data["jobs"]["http://ci.dev/job/acceptance_tests"]['claim'] == "Michael Bluth"
def test_save_data_to_memcached(self): memcache_client_patcher = patch('memcache.Client') fake_mc = memcache_client_patcher.start() butler = MetaButler(self.config) butler.data = {"yep": "nope"} butler.save_data() expected = [call('all_jobs', {'yep': 'nope'}), call('pipelines', [])] assert fake_mc.return_value.set.call_args_list == expected memcache_client_patcher.stop()