Merge pull request #667 from TargetHolding/batch-statement-length

Add __len__ to BatchStatement
This commit is contained in:
Jim Witschey 2017-01-20 12:50:49 -05:00 committed by GitHub
commit 797008d83b
2 changed files with 11 additions and 1 deletions

View File

@ -791,10 +791,13 @@ class BatchStatement(Statement):
self._maybe_set_routing_attributes(statement)
self._update_custom_payload(statement)
def __len__(self):
return len(self._statements_and_parameters)
def __str__(self):
consistency = ConsistencyLevel.value_to_name.get(self.consistency_level, 'Not Set')
return (u'<BatchStatement type=%s, statements=%d, consistency=%s>' %
(self.batch_type, len(self._statements_and_parameters), consistency))
(self.batch_type, len(self), consistency))
__repr__ = __str__

View File

@ -66,3 +66,10 @@ class BatchStatementTest(unittest.TestCase):
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)
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)