From c887d62810e13e3156ac47dfbcfd709a6ac9858f Mon Sep 17 00:00:00 2001 From: Matt Chisholm Date: Mon, 14 Apr 2014 13:54:01 -0400 Subject: use importlib.machinery to load modules instead of imp under Python 3.3 and greater part of #2830 --- lib/sqlalchemy/testing/plugin/noseplugin.py | 9 +++++++-- sqla_nose.py | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/sqlalchemy/testing/plugin/noseplugin.py b/lib/sqlalchemy/testing/plugin/noseplugin.py index 18a1178a6..bd38745c0 100644 --- a/lib/sqlalchemy/testing/plugin/noseplugin.py +++ b/lib/sqlalchemy/testing/plugin/noseplugin.py @@ -12,15 +12,20 @@ way (e.g. as a package-less import). """ import os +import sys from nose.plugins import Plugin fixtures = None # no package imports yet! this prevents us from tripping coverage # too soon. -import imp path = os.path.join(os.path.dirname(__file__), "plugin_base.py") -plugin_base = imp.load_source("plugin_base", path) +if sys.version_info >= (3,3): + from importlib import machinery + plugin_base = machinery.SourceFileLoader("plugin_base", path).load_module() +else: + import imp + plugin_base = imp.load_source("plugin_base", path) class NoseSQLAlchemy(Plugin): diff --git a/sqla_nose.py b/sqla_nose.py index a01e00152..281b729a5 100755 --- a/sqla_nose.py +++ b/sqla_nose.py @@ -7,7 +7,6 @@ installs SQLAlchemy's testing plugin into the local environment. """ import sys -import imp import nose import warnings @@ -19,7 +18,12 @@ for pth in ['./lib']: # installing without importing SQLAlchemy, so that coverage includes # SQLAlchemy itself. path = "lib/sqlalchemy/testing/plugin/noseplugin.py" -noseplugin = imp.load_source("noseplugin", path) +if sys.version_info >= (3,3): + from importlib import machinery + noseplugin = machinery.SourceFileLoader("noseplugin", path).load_module() +else: + import imp + noseplugin = imp.load_source("noseplugin", path) nose.main(addplugins=[noseplugin.NoseSQLAlchemy()]) -- cgit v1.2.1