Skip to content

Commit 68e4b5a

Browse files
Hellzedtargos
authored andcommitted
tools: fix Python 3 deprecation warning in test.py
PR-URL: #30208 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: David Carlier <devnexen@gmail.com>
1 parent fc407bb commit 68e4b5a

File tree

1 file changed

+28
-13
lines changed

1 file changed

+28
-13
lines changed

tools/test.py

+28-13
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030

3131
from __future__ import print_function
32-
import imp
3332
import logging
3433
import optparse
3534
import os
@@ -45,6 +44,27 @@
4544
import errno
4645
import copy
4746

47+
48+
if sys.version_info >= (3, 5):
49+
from importlib import machinery, util
50+
def get_module(name, path):
51+
loader_details = (machinery.SourceFileLoader, machinery.SOURCE_SUFFIXES)
52+
spec = machinery.FileFinder(path, loader_details).find_spec(name)
53+
module = util.module_from_spec(spec)
54+
spec.loader.exec_module(module)
55+
return module
56+
else:
57+
import imp
58+
def get_module(name, path):
59+
file = None
60+
try:
61+
(file, pathname, description) = imp.find_module(name, [path])
62+
return imp.load_module(name, file, pathname, description)
63+
finally:
64+
if file:
65+
file.close()
66+
67+
4868
from io import open
4969
from os.path import join, dirname, abspath, basename, isdir, exists
5070
from datetime import datetime
@@ -791,18 +811,13 @@ def GetConfiguration(self, context):
791811
if self.is_loaded:
792812
return self.config
793813
self.is_loaded = True
794-
file = None
795-
try:
796-
(file, pathname, description) = imp.find_module('testcfg', [ self.path ])
797-
module = imp.load_module('testcfg', file, pathname, description)
798-
self.config = module.GetConfiguration(context, self.path)
799-
if hasattr(self.config, 'additional_flags'):
800-
self.config.additional_flags += context.node_args
801-
else:
802-
self.config.additional_flags = context.node_args
803-
finally:
804-
if file:
805-
file.close()
814+
815+
module = get_module('testcfg', self.path)
816+
self.config = module.GetConfiguration(context, self.path)
817+
if hasattr(self.config, 'additional_flags'):
818+
self.config.additional_flags += context.node_args
819+
else:
820+
self.config.additional_flags = context.node_args
806821
return self.config
807822

808823
def GetBuildRequirements(self, path, context):

0 commit comments

Comments
 (0)