Skip to content

Commit 067e63d

Browse files
d-w-moorealanking
authored andcommitted
[#567] return logging to normal after a run of the pool_test
Also, pool tests no longer complain about unclosed file resource.
1 parent aa7c328 commit 067e63d

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

irods/test/pool_test.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#! /usr/bin/env python
22
from __future__ import absolute_import
3+
import contextlib
34
import datetime
45
import gc
56
import logging
@@ -242,6 +243,23 @@ def test_no_refresh_connection(self):
242243
self.assertEqual(0, len(self.sess.pool.active))
243244
self.assertEqual(0, len(self.sess.pool.idle))
244245

246+
@staticmethod
247+
@contextlib.contextmanager
248+
def configure_logger(logger, propagate = None, level = None, handler = None):
249+
try:
250+
saved_level = logger.level
251+
logger.setLevel(level)
252+
saved_propagate = logger.propagate
253+
logger.propagate = propagate
254+
if handler:
255+
logger.addHandler(handler)
256+
yield logger
257+
finally:
258+
if handler:
259+
logger.removeHandler(handler)
260+
logger.setLevel(saved_level)
261+
logger.propagate = saved_propagate
262+
245263
# Test to confirm the connection destructor log message is actually
246264
# logged to file, to confirm the destructor is called
247265
def test_connection_destructor_called(self):
@@ -260,17 +278,11 @@ def test_connection_destructor_called(self):
260278
create_time_2 = None
261279
last_used_time_1 = None
262280
last_used_time_2 = None
263-
264-
try:
265-
266-
# Create a temporary log file
267-
my_log_file = tempfile.NamedTemporaryFile()
268-
269-
logging.getLogger('irods.connection').setLevel(logging.DEBUG)
270-
file_handler = logging.FileHandler(my_log_file.name, mode='a')
271-
file_handler.setLevel(logging.DEBUG)
272-
logging.getLogger('irods.connection').addHandler(file_handler)
273-
281+
my_log_file = tempfile.NamedTemporaryFile()
282+
file_handler = logging.FileHandler(my_log_file.name, mode='a')
283+
file_handler.setLevel(logging.DEBUG)
284+
with self.configure_logger(logging.getLogger('irods.connection'),
285+
propagate = False, level = logging.DEBUG, handler = file_handler):
274286
with self.sess.pool.get_connection() as conn:
275287
conn_obj_id_1 = id(conn)
276288
curr_time = datetime.datetime.now()
@@ -313,9 +325,7 @@ def test_connection_destructor_called(self):
313325
with open(my_log_file.name, 'r') as fh:
314326
lines = fh.read().splitlines()
315327
self.assertTrue(DESTRUCTOR_MSG in lines)
316-
finally:
317-
# Remove irods.connection's file_handler that was added just for this test
318-
logging.getLogger('irods.connection').removeHandler(file_handler)
328+
file_handler.close()
319329

320330
def test_get_connection_refresh_time_no_env_file_input_param(self):
321331
connection_refresh_time = self.sess.get_connection_refresh_time(first_name="Magic", last_name="Johnson")

0 commit comments

Comments
 (0)