def test_host_map(self): config = PlProxyConfig.from_dict(TEST_PARTITION_CONFIG_HOST_MAP) shards = config.get_shards() self.assertEqual(shards, [ ShardMeta(id=0, dbname='db1', host='localhost', port=5432), ShardMeta(id=1, dbname='db2', host='hqdb2', port=5432), ])
def test_host_map(self): config = PartitionConfig() shards = config.get_shards() self.assertEquals(shards, [ ShardMeta(id=0, dbname='db1', host='localhost', port=5432), ShardMeta(id=1, dbname='db2', host='hqdb2', port=5432), ])
def test_parse_existing_shard(self): parsed = parse_existing_shard('p0001=dbname=db1 host=hqdb0 port=5432') self.assertEqual( ShardMeta(id=1, dbname='db1', host='hqdb0', port=5432), parsed) parsed = parse_existing_shard('p25=dbname=db2 host=hqdb1 port=6432') self.assertEqual( ShardMeta(id=25, dbname='db2', host='hqdb1', port=6432), parsed)
def test_shard_mapping(self): config = PlProxyConfig.from_dict(TEST_PARTITION_CONFIG) shards = config.get_shards() self.assertEqual(shards, [ ShardMeta(id=0, dbname='db1', host='hqdb1', port=5432), ShardMeta(id=1, dbname='db1', host='hqdb1', port=5432), ShardMeta(id=2, dbname='db2', host='hqdb2', port=5432), ShardMeta(id=3, dbname='db2', host='hqdb2', port=5432), ])
def parse_existing_shard(shard_option): shard_name, options = shard_option.split('=', 1) assert shard_name[0] == 'p' shard_id = int(shard_name[1:]) options = options.split(' ') option_kwargs = dict(tuple(option.split('=')) for option in options) if 'port' in option_kwargs: option_kwargs['port'] = int(option_kwargs['port']) return ShardMeta(id=shard_id, **option_kwargs)
def test_get_shards_to_update(self): existing = [ ShardMeta(id=0, dbname='db0', host='hqdb0', port=5432), ShardMeta(id=1, dbname='db0', host='hqdb0', port=5432), ShardMeta(id=2, dbname='db1', host='hqdb1', port=5432), ShardMeta(id=3, dbname='db1', host='hqdb1', port=5432), ] new = [ ShardMeta(id=0, dbname='db0', host='hqdb0', port=5432), ShardMeta(id=1, dbname='db2', host='hqdb2', port=5432), # changed ShardMeta(id=2, dbname='db1', host='hqdb1', port=5432), ShardMeta(id=3, dbname='db3', host='hqdb3', port=5432), # changed ] to_update = get_shards_to_update(existing, new) self.assertEqual([new[1], new[3]], to_update)
def test_get_server_option_string(self): self.assertEqual( "p0000 'dbname=db1 host=hqdb0 port=5432'", ShardMeta(id=0, dbname='db1', host='hqdb0', port=5432).get_server_option_string() )