Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 25 additions & 23 deletions Lib/test/test_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,12 @@ def test_specific_filters(self):
handler.removeFilter(garr)


def make_temp_file(*args, **kwargs):
fd, fn = tempfile.mkstemp(*args, **kwargs)
os.close(fd)
return fn


class HandlerTest(BaseTest):
def test_name(self):
h = logging.Handler()
Expand All @@ -554,8 +560,7 @@ def test_builtin_handlers(self):
# but we can try instantiating them with various options
if sys.platform in ('linux', 'darwin'):
for existing in (True, False):
fd, fn = tempfile.mkstemp()
os.close(fd)
fn = make_temp_file()
if not existing:
os.unlink(fn)
h = logging.handlers.WatchedFileHandler(fn, encoding='utf-8', delay=True)
Expand Down Expand Up @@ -609,8 +614,7 @@ def test_path_objects(self):

See Issue #27493.
"""
fd, fn = tempfile.mkstemp()
os.close(fd)
fn = make_temp_file()
os.unlink(fn)
pfn = pathlib.Path(fn)
cases = (
Expand Down Expand Up @@ -649,8 +653,7 @@ def remove_loop(fname, tries):
self.deletion_time = None

for delay in (False, True):
fd, fn = tempfile.mkstemp('.log', 'test_logging-3-')
os.close(fd)
fn = make_temp_file('.log', 'test_logging-3-')
remover = threading.Thread(target=remove_loop, args=(fn, del_count))
remover.daemon = True
remover.start()
Expand Down Expand Up @@ -1596,8 +1599,7 @@ def cleanup(h1, fn):
os.remove(fn)

with self.check_no_resource_warning():
fd, fn = tempfile.mkstemp(".log", "test_logging-X-")
os.close(fd)
fn = make_temp_file(".log", "test_logging-X-")

# Replace single backslash with double backslash in windows
# to avoid unicode error during string formatting
Expand Down Expand Up @@ -1782,8 +1784,7 @@ def test_noserver(self):
self.root_logger.error('Nor this')

def _get_temp_domain_socket():
fd, fn = tempfile.mkstemp(prefix='test_logging_', suffix='.sock')
os.close(fd)
fn = make_temp_file(prefix='test_logging_', suffix='.sock')
# just need a name - file can't be present, or we'll get an
# 'address already in use' error.
os.remove(fn)
Expand Down Expand Up @@ -2135,8 +2136,7 @@ class EncodingTest(BaseTest):
def test_encoding_plain_file(self):
# In Python 2.x, a plain file object is treated as having no encoding.
log = logging.getLogger("test")
fd, fn = tempfile.mkstemp(".log", "test_logging-1-")
os.close(fd)
fn = make_temp_file(".log", "test_logging-1-")
# the non-ascii data we write to the log.
data = "foo\x80"
try:
Expand Down Expand Up @@ -3227,8 +3227,7 @@ def cleanup(h1, fn):
os.remove(fn)

with self.check_no_resource_warning():
fd, fn = tempfile.mkstemp(".log", "test_logging-X-")
os.close(fd)
fn = make_temp_file(".log", "test_logging-X-")

config = {
"version": 1,
Expand Down Expand Up @@ -4891,10 +4890,14 @@ def test_log_taskName(self):
async def log_record():
logging.warning('hello world')

handler = None
log_filename = make_temp_file('.log', 'test-logging-taskname-')
self.addCleanup(os.remove, log_filename)
try:
encoding = 'utf-8'
logging.basicConfig(filename='test.log', errors='strict', encoding=encoding,
format='%(taskName)s - %(message)s', level=logging.WARNING)
logging.basicConfig(filename=log_filename, errors='strict',
encoding=encoding, level=logging.WARNING,
format='%(taskName)s - %(message)s')

self.assertEqual(len(logging.root.handlers), 1)
handler = logging.root.handlers[0]
Expand All @@ -4903,13 +4906,13 @@ async def log_record():
with asyncio.Runner(debug=True) as runner:
logging.logAsyncioTasks = True
runner.run(log_record())
finally:
asyncio.set_event_loop_policy(None)
handler.close()
with open('test.log', encoding='utf-8') as f:
with open(log_filename, encoding='utf-8') as f:
data = f.read().strip()
os.remove('test.log')
self.assertRegex(data, r'Task-\d+ - hello world')
finally:
asyncio.set_event_loop_policy(None)
if handler:
handler.close()


def _test_log(self, method, level=None):
Expand Down Expand Up @@ -5294,8 +5297,7 @@ class BaseFileTest(BaseTest):

def setUp(self):
BaseTest.setUp(self)
fd, self.fn = tempfile.mkstemp(".log", "test_logging-2-")
os.close(fd)
self.fn = make_temp_file(".log", "test_logging-2-")
self.rmfiles = []

def tearDown(self):
Expand Down