|
20 | 20 | except ImportError: |
21 | 21 | import unittest # noqa |
22 | 22 | import logging |
| 23 | +from cassandra import ProtocolVersion |
23 | 24 | from cassandra import ConsistencyLevel, Unavailable, InvalidRequest, cluster |
24 | 25 | from cassandra.query import (PreparedStatement, BoundStatement, SimpleStatement, |
25 | 26 | BatchStatement, BatchType, dict_factory, TraceUnavailable) |
26 | 27 | from cassandra.cluster import Cluster, NoHostAvailable |
27 | 28 | from cassandra.policies import HostDistance, RoundRobinPolicy |
28 | 29 | from tests.integration import use_singledc, PROTOCOL_VERSION, BasicSharedKeyspaceUnitTestCase, get_server_versions, \ |
29 | | - greaterthanprotocolv3, MockLoggingHandler, get_supported_protocol_versions, local |
| 30 | + greaterthanprotocolv3, MockLoggingHandler, get_supported_protocol_versions, local, get_cluster, setup_keyspace |
30 | 31 | from tests import notwindows |
31 | 32 |
|
32 | 33 | import time |
33 | 34 | import re |
34 | 35 |
|
35 | | - |
36 | 36 | def setup_module(): |
37 | | - use_singledc() |
| 37 | + use_singledc(start=False) |
| 38 | + ccm_cluster = get_cluster() |
| 39 | + ccm_cluster.clear() |
| 40 | + # This is necessary because test_too_many_statements may |
| 41 | + # timeout otherwise |
| 42 | + config_options = {'write_request_timeout_in_ms': '20000'} |
| 43 | + ccm_cluster.set_configuration_options(config_options) |
| 44 | + ccm_cluster.start(wait_for_binary_proto=True, wait_other_notice=True) |
| 45 | + setup_keyspace() |
38 | 46 | global CASS_SERVER_VERSION |
39 | 47 | CASS_SERVER_VERSION = get_server_versions()[0] |
40 | 48 |
|
@@ -424,7 +432,9 @@ def test_prepared_metadata_generation(self): |
424 | 432 |
|
425 | 433 | base_line = None |
426 | 434 | for proto_version in get_supported_protocol_versions(): |
427 | | - cluster = Cluster(protocol_version=proto_version) |
| 435 | + beta_flag = True if proto_version in ProtocolVersion.BETA_VERSIONS else False |
| 436 | + cluster = Cluster(protocol_version=proto_version, allow_beta_protocol_version=beta_flag) |
| 437 | + |
428 | 438 | session = cluster.connect() |
429 | 439 | select_statement = session.prepare("SELECT * FROM system.local") |
430 | 440 | if proto_version == 1: |
@@ -462,10 +472,16 @@ def test_prepare_on_all_hosts(self): |
462 | 472 | mock_handler = MockLoggingHandler() |
463 | 473 | logger = logging.getLogger(cluster.__name__) |
464 | 474 | logger.addHandler(mock_handler) |
| 475 | + self.assertGreaterEqual(len(clus.metadata.all_hosts()), 3) |
465 | 476 | select_statement = session.prepare("SELECT * FROM system.local") |
466 | | - session.execute(select_statement) |
467 | | - session.execute(select_statement) |
468 | | - session.execute(select_statement) |
| 477 | + reponse_first = session.execute(select_statement) |
| 478 | + reponse_second = session.execute(select_statement) |
| 479 | + reponse_third = session.execute(select_statement) |
| 480 | + |
| 481 | + self.assertEqual(len({reponse_first.response_future.attempted_hosts[0], |
| 482 | + reponse_second.response_future.attempted_hosts[0], |
| 483 | + reponse_third.response_future.attempted_hosts[0]}), 3) |
| 484 | + |
469 | 485 | self.assertEqual(2, mock_handler.get_message_count('debug', "Re-preparing")) |
470 | 486 | finally: |
471 | 487 | clus.shutdown() |
|
0 commit comments