def test_keyranges_for_tasks(self): for global_shard_count in (16,32,64): num_tasks = global_shard_count stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count*2 stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count*8 stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks)
def test_keyranges_for_tasks(self): for global_shard_count in (16, 32, 64): num_tasks = global_shard_count stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count * 2 stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count * 8 stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks)
def test_bind_values_for_unsharded_keyspace(self): stm = keyrange.create_streaming_task_map(1, 1) self.assertEqual(len(stm.keyrange_list), 1) where_clause, bind_vars = keyrange._create_where_clause_for_keyrange( stm.keyrange_list[0]) self.assertEqual(where_clause, "") self.assertEqual(bind_vars, {})
def test_bind_values_for_str_keyspace(self): stm = keyrange.create_streaming_task_map(16, 16) for i, kr in enumerate(stm.keyrange_list): kr_parts = kr.split('-') where_clause, bind_vars = keyrange._create_where_clause_for_keyrange( kr, keyspace_col_type=keyrange_constants.KIT_BYTES) if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertNotEqual(where_clause.find('<'), -1) else: self.assertNotEqual(where_clause.find('>='), -1) else: self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('AND'), -1) kid_list = str_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id1'])
def test_bind_values_for_str_keyspace(self): stm = keyrange.create_streaming_task_map(16, 16) for i, kr in enumerate(stm.keyrange_list): where_clause, bind_vars = keyrange.create_where_clause_for_keyrange(kr, keyspace_col_type=keyrange.KIT_BYTES) if len(bind_vars.keys()) == 1: if kr[0] == '': self.assertNotEqual(where_clause.find('<'), -1) else: self.assertNotEqual(where_clause.find('>='), -1) else: self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('AND'), -1) kid_list = str_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr[0] == '': self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id1'])
def test_bind_values_for_int_keyspace(self): stm = keyrange.create_streaming_task_map(16, 16) for i, kr in enumerate(stm.keyrange_list): kr_parts = kr.split('-') where_clause, bind_vars = keyrange.create_where_clause_for_keyrange(kr) if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertNotEqual(where_clause.find('<'), -1) else: self.assertNotEqual(where_clause.find('>='), -1) else: self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('AND'), -1) kid_list = int_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertLess(keyspace_id, bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0']) self.assertLess(keyspace_id, bind_vars['keyspace_id1'])
def test_incorrect_tasks(self): global_shard_count = 16 with self.assertRaises(dbexceptions.ProgrammingError): stm = keyrange.create_streaming_task_map(4, global_shard_count)
def test_bind_values_for_unsharded_keyspace(self): stm = keyrange.create_streaming_task_map(1, 1) self.assertEqual(len(stm.keyrange_list), 1) where_clause, bind_vars = keyrange.create_where_clause_for_keyrange(stm.keyrange_list[0]) self.assertEqual(where_clause, "") self.assertEqual(bind_vars, {})
def test_incorrect_tasks(self): global_shard_count = 16 with self.assertRaises(dbexceptions.ProgrammingError): stm = keyrange.create_streaming_task_map(4, global_shard_count)