def test_count_replica(self, create_partition): p10 = create_partition('t1', 0) p11 = create_partition('t1', 1) p12 = create_partition('t1', 2) p13 = create_partition('t1', 3) b1 = create_broker('b1', [p10, p11, p12]) b2 = create_broker('b2', [p10, p13]) rg = ReplicationGroup('test_rg', set([b1, b2])) assert rg.count_replica(p10) == 2 assert rg.count_replica(p11) == 1 assert rg.count_replica(p12) == 1 assert rg.count_replica(p13) == 1 assert rg.count_replica(create_partition('t1', 4)) == 0
def test_move_partition(self, create_partition): p10 = create_partition('t1', 0) p11 = create_partition('t1', 1) p20 = create_partition('t2', 0) b1 = create_broker('b1', [p10, p20, p11]) b2 = create_broker('b2', [p10, p11]) # 2 p1 replicas are in rg_source rg_source = ReplicationGroup('rg1', set([b1, b2])) b3 = create_broker('b3', [p10, p11]) b4 = create_broker('b4', [p20]) # 1 p1 replica is in rg_dest rg_dest = ReplicationGroup('rg2', set([b3, b4])) # Move partition p1 from rg1 to rg2 rg_source.move_partition(rg_dest, p10) # partition-count of p1 for rg1 should be 1 assert rg_source.count_replica(p10) == 1 # partition-count of p1 for rg2 should be 2 assert rg_dest.count_replica(p10) == 2 # Rest of the partitions are untouched assert rg_source.count_replica(p20) == 1 assert rg_dest.count_replica(p20) == 1 assert rg_source.count_replica(p11) == 2 assert rg_dest.count_replica(p11) == 1