from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
-import imp
import re
import os
import sys
# Import client module
expath = os.path.dirname(os.path.realpath(__file__))
-client = imp.load_source("client", expath + "/scripts/test.py")
+client = Utility.load_source("client", expath + "/scripts/test.py")
# Due to connectivity issues (between runner host and DUT) in the runner environment,
from __future__ import unicode_literals
from builtins import str
from builtins import range
-import imp
import re
import os
import sys
# Import client module
expath = os.path.dirname(os.path.realpath(__file__))
-client = imp.load_source("client", expath + "/scripts/adder.py")
+client = Utility.load_source("client", expath + "/scripts/adder.py")
@IDF.idf_example_test(env_tag="Example_WIFI")
from __future__ import print_function
from __future__ import unicode_literals
from builtins import range
-import imp
import re
import os
import sys
# Import client module
expath = os.path.dirname(os.path.realpath(__file__))
-client = imp.load_source("client", expath + "/scripts/client.py")
+client = Utility.load_source("client", expath + "/scripts/client.py")
@IDF.idf_example_test(env_tag="Example_WIFI")
# limitations under the License.
#
-import imp
import os
+
+def _load_source(name, path):
+ try:
+ from importlib.machinery import SourceFileLoader
+ return SourceFileLoader(name, path).load_module()
+ except ImportError:
+ # importlib.machinery doesn't exists in Python 2 so we will use imp (deprecated in Python 3)
+ import imp
+ return imp.load_source(name, path)
+
+
idf_path = os.environ['IDF_PATH']
# protocomm component related python files generated from .proto files
-constants_pb2 = imp.load_source("constants_pb2", idf_path + "/components/protocomm/python/constants_pb2.py")
-sec0_pb2 = imp.load_source("sec0_pb2", idf_path + "/components/protocomm/python/sec0_pb2.py")
-sec1_pb2 = imp.load_source("sec1_pb2", idf_path + "/components/protocomm/python/sec1_pb2.py")
-session_pb2 = imp.load_source("session_pb2", idf_path + "/components/protocomm/python/session_pb2.py")
+constants_pb2 = _load_source("constants_pb2", idf_path + "/components/protocomm/python/constants_pb2.py")
+sec0_pb2 = _load_source("sec0_pb2", idf_path + "/components/protocomm/python/sec0_pb2.py")
+sec1_pb2 = _load_source("sec1_pb2", idf_path + "/components/protocomm/python/sec1_pb2.py")
+session_pb2 = _load_source("session_pb2", idf_path + "/components/protocomm/python/session_pb2.py")
# wifi_provisioning component related python files generated from .proto files
-wifi_constants_pb2 = imp.load_source("wifi_constants_pb2", idf_path + "/components/wifi_provisioning/python/wifi_constants_pb2.py")
-wifi_config_pb2 = imp.load_source("wifi_config_pb2", idf_path + "/components/wifi_provisioning/python/wifi_config_pb2.py")
+wifi_constants_pb2 = _load_source("wifi_constants_pb2", idf_path + "/components/wifi_provisioning/python/wifi_constants_pb2.py")
+wifi_config_pb2 = _load_source("wifi_config_pb2", idf_path + "/components/wifi_provisioning/python/wifi_config_pb2.py")
# custom_provisioning component related python files generated from .proto files
-custom_config_pb2 = imp.load_source("custom_config_pb2", idf_path +
- "/examples/provisioning/custom_config/components/custom_provisioning/python/custom_config_pb2.py")
+custom_config_pb2 = _load_source("custom_config_pb2", idf_path +
+ "/examples/provisioning/custom_config/components/custom_provisioning/python/custom_config_pb2.py")
- name: xxx
"""
-# TODO: add a function to use suitable import lib for python2 and python3
-import imp
-
import yaml
import TestCase
+from Utility import load_source
+
def _convert_to_lower_case_bytes(item):
"""
output = dict()
for key in overwrite:
_path = overwrite[key]["path"]
- # TODO: add a function to use suitable import lib for python2 and python3
- _module = imp.load_source(str(hash(_path)), overwrite[key]["path"])
+ _module = load_source(str(hash(_path)), overwrite[key]["path"])
output[key] = _module.__getattribute__(overwrite[key]["class"])
return output
import fnmatch
import types
import copy
-# TODO: add a function to use suitable import lib for python2 and python3
-import imp
+from Utility import load_source
class Search(object):
print("Try to get cases from: " + file_name)
test_functions = []
try:
- # TODO: add a function to use suitable import lib for python2 and python3
- mod = imp.load_source(str(hash(file_name)), file_name)
+ mod = load_source(str(hash(file_name)), file_name)
for func in [mod.__getattribute__(x) for x in dir(mod)
if isinstance(mod.__getattribute__(x), types.FunctionType)]:
try:
# reset color to white for later logs
print(_COLOR_CODES["white"] + u"\r")
sys.stdout.flush()
+
+
+def load_source(name, path):
+ try:
+ from importlib.machinery import SourceFileLoader
+ return SourceFileLoader(name, path).load_module()
+ except ImportError:
+ # importlib.machinery doesn't exists in Python 2 so we will use imp (deprecated in Python 3)
+ import imp
+ return imp.load_source(name, path)