1""" 2Test for import machinery 3""" 4import unittest 5import sys 6import textwrap 7import subprocess 8import os 9from modulegraph import modulegraph 10 11class TestModuleGraphImport (unittest.TestCase): 12 if not hasattr(unittest.TestCase, 'assertIsInstance'): 13 def assertIsInstance(self, value, types): 14 if not isinstance(value, types): 15 self.fail("%r is not an instance of %r"%(value, types)) 16 17 def test_compat(self): 18 root = os.path.join( 19 os.path.dirname(os.path.abspath(__file__)), 20 'testpkg-compatmodule') 21 mf = modulegraph.ModuleGraph(path=[ root ] + sys.path) 22 mf.import_hook('pkg.api') 23 24 node = mf.findNode('pkg') 25 self.assertIsInstance(node, modulegraph.Package) 26 27 node = mf.findNode('pkg.api') 28 self.assertIsInstance(node, modulegraph.SourceModule) 29 30 if sys.version_info[0] == 2: 31 node = mf.findNode('pkg.api2') 32 self.assertIsInstance(node, modulegraph.SourceModule) 33 34 node = mf.findNode('pkg.api3') 35 self.assertIsInstance(node, modulegraph.InvalidSourceModule) 36 37 node = mf.findNode('http.client') 38 self.assertIs(node, None) 39 40 node = mf.findNode('urllib2') 41 self.assertIsInstance(node, modulegraph.SourceModule) 42 43 else: 44 node = mf.findNode('pkg.api2') 45 self.assertIsInstance(node, modulegraph.InvalidSourceModule) 46 47 node = mf.findNode('pkg.api3') 48 self.assertIsInstance(node, modulegraph.SourceModule) 49 50 node = mf.findNode('http.client') 51 self.assertIsInstance(node, modulegraph.SourceModule) 52 53 node = mf.findNode('urllib2') 54 self.assertIs(node, None) 55 56 57 58 59if __name__ == "__main__": 60 unittest.main() 61