Skip to content

gh-91513: Tidied up a test and did minor refactoring around test filename gener… (GH-93265) #93265

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 26, 2022
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