def test_replicated_cluster(): """ Test cluster replication. """ replicas = 3 node = SimpleNode() cluster = ReplicatedCluster((node,), replica_count=replicas) assert cluster.read_durability == 2 assert cluster.write_durability == 2 cluster.read_durability = 1 assert cluster.read_durability == 1 try: cluster.read_durability = 0 assert False except ValueError: assert True try: cluster.read_durability = 100 assert False except ValueError: assert True cluster.read_durability = None assert cluster.read_durability == quorum(cluster.replica_count) cluster.write_durability = 0 assert cluster.write_durability == 0 cluster.write_durability = 1 assert cluster.write_durability == 1 try: cluster.write_durability = 100 assert False except ValueError: assert True cluster.write_durability = None assert cluster.write_durability == quorum(cluster.replica_count) cluster['hello'] = 'world' assert len(node) == replicas del cluster['hello'] assert len(node) == 0 with cluster(read_durability=replicas): assert cluster.read_durability == replicas assert cluster.read_durability == quorum(replicas) with cluster(write_durability=replicas): assert cluster.write_durability == replicas assert cluster.write_durability == quorum(replicas)
def get_write_durability(self): value = getattr(self, '_write_durability', None) if value is not None: return value else: return quorum(self.replica_count)
def get_read_durability(self): return getattr(self, '_read_durability', None) or quorum(self.replica_count)