test_requirements: Avoid using pip as library

Because importing "pip" in Python scripts is not supported usage of
"pip", this patch fixes to use "pkg_resources" + "urllib" instead.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
IWASE Yusuke 2018-03-23 10:24:36 +09:00 committed by FUJITA Tomonori
parent a27c56a054
commit fe06d87f65

View File

@ -19,8 +19,6 @@ import sys
import unittest import unittest
import pkg_resources import pkg_resources
from pip.req import parse_requirements
from pip.download import PipSession
from six.moves import urllib from six.moves import urllib
from nose.tools import ok_ from nose.tools import ok_
@ -28,7 +26,7 @@ from nose.tools import ok_
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
MOD_DIR = os.path.dirname(sys.modules[__name__].__file__) MOD_DIR = os.path.dirname('file://' + sys.modules[__name__].__file__)
_RYU_REQUIREMENTS_FILES = [ _RYU_REQUIREMENTS_FILES = [
'../../../tools/pip-requires', '../../../tools/pip-requires',
'../../../tools/optional-requires', '../../../tools/optional-requires',
@ -51,9 +49,10 @@ OPENSTACK_REQUIREMENTS_FILES = [
def _get_requirements(files): def _get_requirements(files):
requirements = {} requirements = {}
for f in files: for f in files:
req = parse_requirements(f, session=PipSession()) response = urllib.request.urlopen(f)
for r in req: contents = response.read().decode('utf-8')
requirements[r.name] = str(r.req) for r in pkg_resources.parse_requirements(contents):
requirements[r.name] = str(r)
return requirements return requirements
@ -82,5 +81,5 @@ class TestRequirements(unittest.TestCase):
except pkg_resources.VersionConflict as e: except pkg_resources.VersionConflict as e:
LOG.exception( LOG.exception(
'Some requirements of Ryu are conflicting with that of ' 'Some requirements of Ryu are conflicting with that of '
'OpenStack project: %s' % OPENSTACK_REQUIREMENTS_REPO) 'OpenStack project: %s', OPENSTACK_REQUIREMENTS_REPO)
raise e raise e