Esempio n. 1
0
 def test_dotted_comma(self):
     self.assertEqual(self.parse("""
   import a.b, c
 """), [
         parsepy.ImportStatement(name='a.b'),
         parsepy.ImportStatement(name='c')
     ])
Esempio n. 2
0
 def test_multiple_2(self):
     self.assertEqual(self.parse("""
   import a, b as bb
 """), [
         parsepy.ImportStatement(name='a'),
         parsepy.ImportStatement(name='b', new_name='bb')
     ])
Esempio n. 3
0
 def test_multiple_1(self):
     self.assertEqual(self.parse("""
   import a, b, c, d
 """), [
         parsepy.ImportStatement(name='a'),
         parsepy.ImportStatement(name='b'),
         parsepy.ImportStatement(name='c'),
         parsepy.ImportStatement(name='d')
     ])
Esempio n. 4
0
 def test_dot_multiple(self):
     self.assertEqual(
         self.parse("""
   from . import a, b, c as cc
 """), [
             parsepy.ImportStatement(name='.a', new_name='a', is_from=True),
             parsepy.ImportStatement(name='.b', new_name='b', is_from=True),
             parsepy.ImportStatement(name='.c', new_name='cc', is_from=True)
         ])
Esempio n. 5
0
 def test_multiple_3(self):
     self.assertEqual(
         self.parse("""
   import a, b as bb, a.x, a.x.y as a_x_y
 """), [
             parsepy.ImportStatement(name='a'),
             parsepy.ImportStatement(name='b', new_name='bb'),
             parsepy.ImportStatement(name='a.x', new_name='a.x'),
             parsepy.ImportStatement(name='a.x.y', new_name='a_x_y'),
         ])
Esempio n. 6
0
 def test_from_multiple(self):
     self.assertEqual(
         self.parse("""
   from a import b, c, d as dd
 """), [
             parsepy.ImportStatement(name='a.b', new_name='b',
                                     is_from=True),
             parsepy.ImportStatement(name='a.c', new_name='c',
                                     is_from=True),
             parsepy.ImportStatement(
                 name='a.d', new_name='dd', is_from=True)
         ])
Esempio n. 7
0
 def test_print_function(self):
     self.assertEqual(
         self.parse("""
   from __future__ import print_function
   import sys
   print("hello world", file=sys.stdout)
 """), [
             parsepy.ImportStatement(name='__future__.print_function',
                                     new_name='print_function',
                                     is_from=True),
             parsepy.ImportStatement(name='sys')
         ])
Esempio n. 8
0
 def test_from_parentheses(self):
     self.assertEqual(
         self.parse("""
   from a import (b, c, d as dd)
 """), [
             parsepy.ImportStatement(name='a.b', new_name='b',
                                     is_from=True),
             parsepy.ImportStatement(name='a.c', new_name='c',
                                     is_from=True),
             parsepy.ImportStatement(
                 name='a.d', new_name='dd', is_from=True)
         ])
Esempio n. 9
0
 def test_asterisk(self):
     self.assertEqual(
         self.parse("""
   from a import *
   from a.b import *
   from a . b . c import *
 """), [
             parsepy.ImportStatement(name='a', is_from=True, is_star=True),
             parsepy.ImportStatement(name='a.b', is_from=True,
                                     is_star=True),
             parsepy.ImportStatement(
                 name='a.b.c', is_from=True, is_star=True)
         ])
Esempio n. 10
0
 def testResolveParentPackageFileWithModule(self):
     imp = parsepy.ImportStatement("..a")
     r = self.make_resolver("foo/d.py", "bar.foo.d")
     f = r.resolve_import(imp)
     self.assertEqual(f.path, "a.py")
     self.assertTrue(isinstance(f, resolve.Local))
     self.assertEqual(f.module_name, "bar.a")
Esempio n. 11
0
 def test_encoding_latin1(self):
     self.assertEqual(
         self.parse("""
   # -*- coding: iso-8859-1 -*-
   # Author: Thomas Sch\xf6n
   import a
 """), [parsepy.ImportStatement(name='a')])
Esempio n. 12
0
 def test_encoding_utf8(self):
     self.assertEqual(
         self.parse("""
   # -*- coding: utf-8 -*-
   # Author: Lo\x6f\xc3\xafc Fooman
   import a
 """), [parsepy.ImportStatement(name='a')])
Esempio n. 13
0
 def test_dot(self):
     self.assertEqual(
         self.parse("""
   from . import a
   from .a import b
   from .a.b import c
   from .a.b.c import *
 """), [
             parsepy.ImportStatement(name='.a', new_name='a', is_from=True),
             parsepy.ImportStatement(
                 name='.a.b', new_name='b', is_from=True),
             parsepy.ImportStatement(
                 name='.a.b.c', new_name='c', is_from=True),
             parsepy.ImportStatement(
                 name='.a.b.c', is_from=True, is_star=True)
         ])
Esempio n. 14
0
 def testResolveStarImportSystem(self):
     imp = parsepy.ImportStatement("f", is_from=True, is_star=True,
                                   source="/system/f.py")
     r = self.make_resolver("x.py", "x")
     f = r.resolve_import(imp)
     self.assertEqual(f.path, "/system/f.py")
     self.assertEqual(f.module_name, "f")
Esempio n. 15
0
 def testResolveStarImport(self):
     # from foo.c import *
     imp = parsepy.ImportStatement("foo.c", is_from=True, is_star=True)
     r = self.make_resolver("x.py", "x")
     f = r.resolve_import(imp)
     self.assertEqual(f.path, "foo/c.py")
     self.assertEqual(f.module_name, "foo.c")
Esempio n. 16
0
 def testResolveStarImportBuiltin(self):
     imp = parsepy.ImportStatement("sys", is_from=True, is_star=True)
     r = self.make_resolver("x.py", "x")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.Builtin))
     self.assertEqual(f.path, "sys.so")
     self.assertEqual(f.module_name, "sys")
Esempio n. 17
0
 def testFallBackToSource(self):
     imp = parsepy.ImportStatement("f", source="/system/f.py")
     r = self.make_resolver("x.py", "x")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.System))
     self.assertEqual(f.path, "/system/f.py")
     self.assertEqual(f.module_name, "f")
Esempio n. 18
0
 def testResolveInitFileRelative(self):
     imp = parsepy.ImportStatement("..baz")
     r = self.make_resolver("foo/d.py", "foo.d")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.Local))
     self.assertEqual(f.path, "baz/__init__.py")
     self.assertEqual(f.module_name, "..baz")
Esempio n. 19
0
 def testResolvePyiFile(self):
     imp = parsepy.ImportStatement("x")
     r = self.make_resolver("b.py", "b")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.Local))
     self.assertEqual(f.fs, self.pyi_fs)
     self.assertEqual(f.path, "x.pyi")
     self.assertEqual(f.module_name, "x")
Esempio n. 20
0
 def testResolveSystemSymbol(self):
     imp = parsepy.ImportStatement("argparse.ArgumentParser",
                                   source="/system/argparse.pyc",
                                   is_from=True)
     r = self.make_resolver("x.py", "x")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.System))
     self.assertEqual(f.module_name, "argparse")
Esempio n. 21
0
 def testResolveRelativeFromInitFileWithModule(self):
     parent = resolve.Direct("baz/__init__.py", "baz")
     imp = parsepy.ImportStatement(".f")
     r = resolve.Resolver(self.path, parent)
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.Local))
     self.assertEqual(f.path, "baz/f.py")
     self.assertEqual(f.module_name, "baz.f")
Esempio n. 22
0
 def testResolveWithFilesystem(self):
     imp = parsepy.ImportStatement("a")
     r = self.make_resolver("b.py", "b")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.Local))
     self.assertEqual(f.fs, self.py_fs)
     self.assertEqual(f.path, "a.py")
     self.assertEqual(f.module_name, "a")
Esempio n. 23
0
 def test_dotted_from(self):
     self.assertEqual(
         self.parse("""
   from a.b.c import d as e
 """), [
             parsepy.ImportStatement(
                 name='a.b.c.d', new_name='e', is_from=True)
         ])
Esempio n. 24
0
 def testResolveRelativeSymbol(self):
     # importing the Symbol object from baz/__init__.py while in baz/f.py
     parent = resolve.Direct("baz/f.py", "baz.f")
     imp = parsepy.ImportStatement(".Symbol", is_from=True)
     r = resolve.Resolver(self.path, parent)
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.Local))
     self.assertEqual(f.path, "baz/__init__.py")
     self.assertEqual(f.module_name, "baz")
Esempio n. 25
0
 def testResolveSystemSymbolNameClash(self):
     # from foo.foo import foo
     imp = parsepy.ImportStatement("foo.foo.foo",
                                   source="/system/bar/foo/foo.pyc",
                                   is_from=True)
     r = self.make_resolver("x.py", "x")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.System))
     self.assertEqual(f.module_name, "foo.foo")
Esempio n. 26
0
 def testResolveSystemFileNameClash(self):
     # `import a` in a.py should get the system a.py
     sys_file = "/system/a.py"
     imp = parsepy.ImportStatement("a", source=sys_file)
     r = self.make_resolver("a.py", "a")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.System))
     self.assertEqual(f.path, sys_file)
     self.assertEqual(f.module_name, "a")
Esempio n. 27
0
 def testResolveSystemInitFile(self):
     # from foo.foo import foo
     imp = parsepy.ImportStatement("foo.bar.X",
                                   source="/system/foo/bar/__init__.pyc",
                                   is_from=True)
     r = self.make_resolver("x.py", "x")
     f = r.resolve_import(imp)
     self.assertTrue(isinstance(f, resolve.System))
     self.assertEqual(f.module_name, "foo.bar")
Esempio n. 28
0
 def testResolveSystemPackageDir(self):
     with utils.Tempdir() as d:
         py_file = d.create_file("foo/__init__.py")
         imp = parsepy.ImportStatement("foo", source=d["foo"], is_from=True)
         r = self.make_resolver("x.py", "x")
         f = r.resolve_import(imp)
         self.assertTrue(isinstance(f, resolve.System))
         self.assertEqual(f.module_name, "foo")
         self.assertEqual(f.path, py_file)
Esempio n. 29
0
 def testResolveSiblingPackageFile(self):
     # This is an invalid import, since we are trying to resolve a relative
     # import beyond the top-level package. The file resolver does not figure
     # out that we are moving beyond the top-level, but the module name does
     # not get qualified and remains relative.
     imp = parsepy.ImportStatement("..bar.e")
     r = self.make_resolver("foo/d.py", "foo.d")
     f = r.resolve_import(imp)
     self.assertEqual(f.path, "bar/e.py")
     self.assertEqual(f.module_name, "..bar.e")
Esempio n. 30
0
 def testGetPyFromPycSource(self):
     # Override a source pyc file with the corresponding py file if it exists
     # in the native filesystem.
     with utils.Tempdir() as d:
         py_file = d.create_file("f.py")
         pyc_file = d.create_file("f.pyc")
         imp = parsepy.ImportStatement("f", source=pyc_file)
         r = self.make_resolver("x.py", "x")
         f = r.resolve_import(imp)
         self.assertEqual(f.path, py_file)
         self.assertEqual(f.module_name, "f")