Skip to content

Commit

Permalink
pythongh-111881: Use lazy import in test.support (python#111885)
Browse files Browse the repository at this point in the history
* Import lazily getpass in test.support
* Only import ctypes on Windows in test.support.os_helper.
  • Loading branch information
vstinner authored and Glyphack committed Jan 27, 2024
1 parent 8e206a4 commit 9cd1978
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Lib/test/support/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import contextlib
import dataclasses
import functools
import getpass
import _opcode
import os
import re
Expand Down Expand Up @@ -383,6 +382,7 @@ def wrapper(*args, **kw):

def skip_if_buildbot(reason=None):
"""Decorator raising SkipTest if running on a buildbot."""
import getpass
if not reason:
reason = 'not suitable for buildbots'
try:
Expand Down
19 changes: 12 additions & 7 deletions Lib/test/support/os_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import unittest
import warnings

from test import support


# Filename used for testing
TESTFN_ASCII = '@test'
Expand Down Expand Up @@ -720,13 +722,16 @@ def __exit__(self, *ignore_exc):


try:
import ctypes
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)

ERROR_FILE_NOT_FOUND = 2
DDD_REMOVE_DEFINITION = 2
DDD_EXACT_MATCH_ON_REMOVE = 4
DDD_NO_BROADCAST_SYSTEM = 8
if support.MS_WINDOWS:
import ctypes
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)

ERROR_FILE_NOT_FOUND = 2
DDD_REMOVE_DEFINITION = 2
DDD_EXACT_MATCH_ON_REMOVE = 4
DDD_NO_BROADCAST_SYSTEM = 8
else:
raise AttributeError
except (ImportError, AttributeError):
def subst_drive(path):
raise unittest.SkipTest('ctypes or kernel32 is not available')
Expand Down

0 comments on commit 9cd1978

Please sign in to comment.