blob: 0852a76cf51c5fcc04cdd1a5b3bef15484bc4bce [file] [log] [blame]
"""
Test for import machinery
"""
from __future__ import absolute_import
import unittest
import sys
import textwrap
import subprocess
import os
from modulegraph import modulegraph
class TestModuleGraphImport (unittest.TestCase):
if not hasattr(unittest.TestCase, 'assertIsInstance'):
def assertIsInstance(self, value, types):
if not isinstance(value, types):
self.fail("%r is not an instance of %r"%(value, types))
def test_compat(self):
root = os.path.join(
os.path.dirname(os.path.abspath(__file__)),
'testpkg-compatmodule')
mf = modulegraph.ModuleGraph(path=[ root ] + sys.path)
mf.import_hook('pkg.api')
node = mf.findNode('pkg')
self.assertIsInstance(node, modulegraph.Package)
node = mf.findNode('pkg.api')
self.assertIsInstance(node, modulegraph.SourceModule)
if sys.version_info[0] == 2:
node = mf.findNode('pkg.api2')
self.assertIsInstance(node, modulegraph.SourceModule)
node = mf.findNode('pkg.api3')
self.assertIsInstance(node, modulegraph.InvalidSourceModule)
node = mf.findNode('http.client')
self.assertIs(node, None)
node = mf.findNode('urllib2')
self.assertIsInstance(node, modulegraph.SourceModule)
else:
node = mf.findNode('pkg.api2')
self.assertIsInstance(node, modulegraph.InvalidSourceModule)
node = mf.findNode('pkg.api3')
self.assertIsInstance(node, modulegraph.SourceModule)
node = mf.findNode('http.client')
self.assertIsInstance(node, modulegraph.SourceModule)
node = mf.findNode('urllib2')
self.assertIs(node, None)
if __name__ == "__main__":
unittest.main()