Skip to content

Commit cd1f5ed

Browse files
Lorak-mmkfruch
authored andcommitted
tests: Ensure additional log handlers are removed
In some places handlers added using logger.addHandler were not removed. Some tests manually added MockLoggingHandler instead of using `with` . This commit fixes those problems.
1 parent 4bbfd2d commit cd1f5ed

File tree

5 files changed

+50
-50
lines changed

5 files changed

+50
-50
lines changed

tests/integration/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ def __enter__(self):
896896
return self
897897

898898
def __exit__(self, *args):
899-
pass
899+
self.logger.removeHandler(self)
900900

901901

902902
class BasicExistingKeyspaceUnitTestCase(BasicKeyspaceUnitTestCase):

tests/integration/cqlengine/management/test_management.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -360,18 +360,15 @@ def test_sync_warnings(self):
360360
361361
@test_category object_mapper
362362
"""
363-
mock_handler = MockLoggingHandler()
364-
logger = logging.getLogger(management.__name__)
365-
logger.addHandler(mock_handler)
366-
sync_table(BaseInconsistent)
367-
sync_table(ChangedInconsistent)
368-
self.assertTrue('differing from the model type' in mock_handler.messages.get('warning')[0])
369-
if CASSANDRA_VERSION >= Version('2.1'):
370-
sync_type(DEFAULT_KEYSPACE, BaseInconsistentType)
371-
mock_handler.reset()
372-
sync_type(DEFAULT_KEYSPACE, ChangedInconsistentType)
373-
self.assertTrue('differing from the model user type' in mock_handler.messages.get('warning')[0])
374-
logger.removeHandler(mock_handler)
363+
with MockLoggingHandler().set_module_name(management.__name__) as mock_handler:
364+
sync_table(BaseInconsistent)
365+
sync_table(ChangedInconsistent)
366+
self.assertTrue('differing from the model type' in mock_handler.messages.get('warning')[0])
367+
if CASSANDRA_VERSION >= Version('2.1'):
368+
sync_type(DEFAULT_KEYSPACE, BaseInconsistentType)
369+
mock_handler.reset()
370+
sync_type(DEFAULT_KEYSPACE, ChangedInconsistentType)
371+
self.assertTrue('differing from the model user type' in mock_handler.messages.get('warning')[0])
375372

376373

377374
class TestIndexSetModel(Model):

tests/integration/simulacron/test_cluster.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,20 @@ class DuplicateRpcTest(SimulacronCluster):
8888
connect = False
8989

9090
def test_duplicate(self):
91-
mock_handler = MockLoggingHandler()
92-
logger = logging.getLogger(cassandra.cluster.__name__)
93-
logger.addHandler(mock_handler)
94-
address_column = "native_transport_address" if DSE_VERSION and DSE_VERSION > Version("6.0") else "rpc_address"
95-
rows = [
96-
{"peer": "127.0.0.1", "data_center": "dc", "host_id": "dontcare1", "rack": "rack1",
97-
"release_version": "3.11.4", address_column: "127.0.0.1", "schema_version": "dontcare", "tokens": "1"},
98-
{"peer": "127.0.0.2", "data_center": "dc", "host_id": "dontcare2", "rack": "rack1",
99-
"release_version": "3.11.4", address_column: "127.0.0.2", "schema_version": "dontcare", "tokens": "2"},
100-
]
101-
prime_query(ControlConnection._SELECT_PEERS, rows=rows)
102-
103-
cluster = Cluster(protocol_version=PROTOCOL_VERSION, compression=False)
104-
session = cluster.connect(wait_for_all_pools=True)
105-
106-
warnings = mock_handler.messages.get("warning")
107-
self.assertEqual(len(warnings), 1)
108-
self.assertTrue('multiple hosts with the same endpoint' in warnings[0])
109-
logger.removeHandler(mock_handler)
110-
cluster.shutdown()
91+
with MockLoggingHandler().set_module_name(cassandra.cluster.__name__) as mock_handler:
92+
address_column = "native_transport_address" if DSE_VERSION and DSE_VERSION > Version("6.0") else "rpc_address"
93+
rows = [
94+
{"peer": "127.0.0.1", "data_center": "dc", "host_id": "dontcare1", "rack": "rack1",
95+
"release_version": "3.11.4", address_column: "127.0.0.1", "schema_version": "dontcare", "tokens": "1"},
96+
{"peer": "127.0.0.2", "data_center": "dc", "host_id": "dontcare2", "rack": "rack1",
97+
"release_version": "3.11.4", address_column: "127.0.0.2", "schema_version": "dontcare", "tokens": "2"},
98+
]
99+
prime_query(ControlConnection._SELECT_PEERS, rows=rows)
100+
101+
cluster = Cluster(protocol_version=PROTOCOL_VERSION, compression=False)
102+
session = cluster.connect(wait_for_all_pools=True)
103+
104+
warnings = mock_handler.messages.get("warning")
105+
self.assertEqual(len(warnings), 1)
106+
self.assertTrue('multiple hosts with the same endpoint' in warnings[0])
107+
cluster.shutdown()

tests/integration/standard/test_query.py

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,9 @@ def setUp(self):
508508
self.mock_handler = MockLoggingHandler()
509509
logger = logging.getLogger(cluster.__name__)
510510
logger.addHandler(self.mock_handler)
511+
512+
def tearDown(self):
513+
logger.removeHandler(self.mock_handler)
511514

512515
def test_prepare_on_all_hosts(self):
513516
"""
@@ -1562,28 +1565,27 @@ def test_reprepare_after_host_is_down(self):
15621565
15631566
@test_category query
15641567
"""
1565-
mock_handler = MockLoggingHandler()
1566-
logger = logging.getLogger(cluster.__name__)
1567-
logger.addHandler(mock_handler)
1568-
get_node(1).stop(wait=True, gently=True, wait_other_notice=True)
1568+
with MockLoggingHandler().set_module_name(cluster.__name__) as mock_handler:
1569+
get_node(1).stop(wait=True, gently=True, wait_other_notice=True)
15691570

1570-
only_first = ExecutionProfile(load_balancing_policy=WhiteListRoundRobinPolicy(["127.0.0.1"]))
1571-
self.cluster.add_execution_profile("only_first", only_first)
1571+
only_first = ExecutionProfile(load_balancing_policy=WhiteListRoundRobinPolicy(["127.0.0.1"]))
1572+
self.cluster.add_execution_profile("only_first", only_first)
15721573

1573-
query = "SELECT v from {} WHERE k = ?".format(self.table_name)
1574-
prepared_statement = self.session.prepare(query, keyspace=self.ks_name)
1575-
prepared_statement_alternative = self.session.prepare(query, keyspace=self.alternative_ks)
1574+
query = "SELECT v from {} WHERE k = ?".format(self.table_name)
1575+
prepared_statement = self.session.prepare(query, keyspace=self.ks_name)
1576+
prepared_statement_alternative = self.session.prepare(query, keyspace=self.alternative_ks)
15761577

1577-
get_node(1).start(wait_for_binary_proto=True, wait_other_notice=True)
1578+
get_node(1).start(wait_for_binary_proto=True, wait_other_notice=True)
15781579

1579-
# We wait for cluster._prepare_all_queries to be called
1580-
time.sleep(5)
1581-
self.assertEqual(1, mock_handler.get_message_count('debug', 'Preparing all known prepared statements'))
1582-
results = self.session.execute(prepared_statement, (1,), execution_profile="only_first")
1583-
self.assertEqual(results[0], (1, ))
1580+
# We wait for cluster._prepare_all_queries to be called
1581+
time.sleep(5)
1582+
self.assertEqual(1, mock_handler.get_message_count('debug', 'Preparing all known prepared statements'))
1583+
1584+
results = self.session.execute(prepared_statement, (1,), execution_profile="only_first")
1585+
self.assertEqual(results[0], (1, ))
15841586

1585-
results = self.session.execute(prepared_statement_alternative, (2,), execution_profile="only_first")
1586-
self.assertEqual(results[0], (2, ))
1587+
results = self.session.execute(prepared_statement_alternative, (2,), execution_profile="only_first")
1588+
self.assertEqual(results[0], (2, ))
15871589

15881590
def test_prepared_not_found(self):
15891591
"""

tests/integration/upgrade/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ def setUpClass(cls):
7878
cls.logger_handler = MockLoggingHandler()
7979
logger = logging.getLogger(cluster.__name__)
8080
logger.addHandler(cls.logger_handler)
81+
82+
@classmethod
83+
def tearDownClass(cls):
84+
logger.removeHandler(cls.logger_handler)
8185

8286
def _upgrade_step_setup(self):
8387
"""

0 commit comments

Comments
 (0)