def test_blockers(self): class FakeItem1(object): BLOCK_CONCURRENT = [] ITEM_TYPE_NAME = 'type1' class FakeItem2(object): BLOCK_CONCURRENT = ['type3'] ITEM_TYPE_NAME = 'type2' class FakeItem3(object): BLOCK_CONCURRENT = [] ITEM_TYPE_NAME = 'type3' def make_item(cls, item_id): item = cls() item._deps = [] item._flattened_deps = [] item.id = item_id return item item11 = make_item(FakeItem1, "type1:name1") item12 = make_item(FakeItem1, "type1:name2") item21 = make_item(FakeItem2, "type2:name1") item22 = make_item(FakeItem2, "type2:name2") item23 = make_item(FakeItem2, "type2:name3") item31 = make_item(FakeItem3, "type3:name1") item32 = make_item(FakeItem3, "type3:name2") items = [item11, item32, item22, item12, item21, item23, item31] injected = deps._inject_concurrency_blockers(items) deps_should = { item11: [], item32: [], item22: ["type3:name2"], item12: [], item21: ["type2:name2"], item23: ["type2:name1"], item31: ["type2:name3"], } self.assertEqual(len(injected), len(items)) for item in injected: self.assertEqual(item._deps, deps_should[item])
def test_noop(self): class FakeItem(object): pass def make_item(item_id): item = FakeItem() item._deps = [] item.BLOCK_CONCURRENT = [] item.ITEM_TYPE_NAME = item_id.split(":")[0] item.id = item_id return item item11 = make_item("type1:name1") item12 = make_item("type1:name2") item21 = make_item("type2:name1") item22 = make_item("type2:name2") item23 = make_item("type2:name3") item31 = make_item("type3:name1") item32 = make_item("type3:name2") items = [item11, item32, item22, item12, item21, item23, item31] injected = deps._inject_concurrency_blockers(items) deps_should = { item11: [], item32: [], item22: [], item12: [], item21: [], item23: [], item31: [], } self.assertEqual(len(injected), len(items)) for item in injected: self.assertEqual(item._deps, deps_should[item])