def test_add_all(self):
     batch = BatchStatement()
     statements = ['%s'] * 10
     parameters = [(i,) for i in range(10)]
     batch.add_all(statements, parameters)
     bound_statements = [t[1] for t in batch._statements_and_parameters]
     str_parameters = [str(i) for i in range(10)]
     self.assertEqual(bound_statements, str_parameters)
Ejemplo n.º 2
0
    def test_too_many_statements(self):
        max_statements = 0xFFFF
        ss = SimpleStatement("INSERT INTO test3rf.test (k, v) VALUES (0, 0)")
        b = BatchStatement(batch_type=BatchType.UNLOGGED, consistency_level=ConsistencyLevel.ONE)

        # max works
        b.add_all([ss] * max_statements, [None] * max_statements)
        self.session.execute(b)

        # max + 1 raises
        self.assertRaises(ValueError, b.add, ss)

        # also would have bombed trying to encode
        b._statements_and_parameters.append((False, ss.query_string, ()))
        self.assertRaises(NoHostAvailable, self.session.execute, b)
Ejemplo n.º 3
0
    def test_too_many_statements(self):
        max_statements = 0xFFFF
        ss = SimpleStatement("INSERT INTO test3rf.test (k, v) VALUES (0, 0)")
        b = BatchStatement(batch_type=BatchType.UNLOGGED, consistency_level=ConsistencyLevel.ONE)

        # max works
        b.add_all([ss] * max_statements, [None] * max_statements)
        self.session.execute(b)

        # max + 1 raises
        self.assertRaises(ValueError, b.add, ss)

        # also would have bombed trying to encode
        b._statements_and_parameters.append((False, ss.query_string, ()))
        self.assertRaises(NoHostAvailable, self.session.execute, b)
Ejemplo n.º 4
0
def insert(cluster, keyspace, cql_stmt, generator, batch_size):
    session = cluster.connect(keyspace)
    session.default_timeout = 60
    session.default_consistency_level = ConsistencyLevel.LOCAL_ONE
    prepared_stmt = session.prepare(cql_stmt)
    batch_stmt = BatchStatement()

    values = take(batch_size, generator)
    count = 0
    while values:
        batch_stmt.add_all([prepared_stmt] * batch_size, values)
        session.execute(batch_stmt)

        values = take(batch_size, generator)
        batch_stmt.clear()
        if (count % 1e3) == 0:
            print('#blocks {:,.0f}'.format(count), end='\r')
        count += batch_size
Ejemplo n.º 5
0
 def test_len(self):
     for n in 0, 10, 100:
         batch = BatchStatement()
         batch.add_all(statements=['%s'] * n,
                       parameters=[(i,) for i in range(n)])
         self.assertEqual(len(batch), n)
Ejemplo n.º 6
0
 def test_len(self):
     for n in 0, 10, 100:
         batch = BatchStatement()
         batch.add_all(statements=['%s'] * n,
                       parameters=[(i, ) for i in range(n)])
         self.assertEqual(len(batch), n)