Esempio n. 1
0
 def test_implicit_import(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo\n'), {'foo.bar.baz'}),
         {('foo.bar.baz', 'foo.bar.baz', ('foo', 'foo', 0, 10))})
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.quux\n'),
             {'foo.bar.baz'}),
         {('foo.bar.baz', 'foo.bar.baz', ('foo.quux', 'foo.quux', 0, 15))})
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.bar\n'),
             {'foo.bar.baz'}),
         {('foo.bar.baz', 'foo.bar.baz', ('foo.bar', 'foo.bar', 0, 14))})
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.bar.quux\n'),
             {'foo.bar.baz'}), {('foo.bar.baz', 'foo.bar.baz',
                                 ('foo.bar.quux', 'foo.bar.quux', 0, 19))})
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.bar.baz.quux\n'),
             {'foo.bar.baz'}),
         {('foo.bar.baz', 'foo.bar.baz',
           ('foo.bar.baz.quux', 'foo.bar.baz.quux', 0, 23))})
Esempio n. 2
0
 def test_implicit_from_import(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'from foo.bar import quux\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'from foo import bar\n'),
             {'bar.baz'}),
         {('foo.bar.baz', 'bar.baz', ('foo.bar', 'bar', 0, 19))})
Esempio n. 3
0
 def test_other_imports(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import bogus\n'), {'foo'}), set())
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo\n'), {'bogus.foo'}),
         set())
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.bar.baz\n'),
             {'bogus.foo.bar.baz'}), set())
Esempio n. 4
0
 def test_as_import(self):
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'import foo as bar\n'), {'foo'}),
         {('foo', 'bar', ('foo', 'bar', 0, 17))})
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'import foo.bar.baz as quux\n'),
             {'foo.bar.baz'}),
         {('foo.bar.baz', 'quux', ('foo.bar.baz', 'quux', 0, 26))})
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'from foo.bar import baz as quux\n'),
             {'foo.bar.baz'}),
         {('foo.bar.baz', 'quux', ('foo.bar.baz', 'quux', 0, 31))})
Esempio n. 5
0
 def test_defined_in_this_file(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File(
                 'foo/bar.py', 'import baz\n'
                 'def some_function():\n'
                 '    return 1\n'), {'some_function'}),
         {('foo.bar.some_function', 'some_function', None)})
Esempio n. 6
0
 def test_other_junk(self):
     self.assertFalse(
         model.compute_all_imports(
             util.File('some_file.py', '# import foo\n')))
     self.assertFalse(
         model.compute_all_imports(
             util.File('some_file.py', '                  # import foo\n')))
     self.assertFalse(
         model.compute_all_imports(
             util.File('some_file.py', 'def foo(): pass\n')))
     self.assertFalse(
         model.compute_all_imports(
             util.File('some_file.py',
                       '"""imports are "fun" in a multiline string"""\n')))
     self.assertFalse(
         model.compute_all_imports(
             util.File('some_file.py',
                       'from __future__ import absolute_import\n')))
Esempio n. 7
0
 def test_implicit_as_import(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo as quux\n'),
             {'quux.bar.baz'}),
         {('foo.bar.baz', 'quux.bar.baz', ('foo', 'quux', 0, 18))})
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.bar as quux\n'),
             {'quux.baz'}),
         {('foo.bar.baz', 'quux.baz', ('foo.bar', 'quux', 0, 22))})
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.bar.quux as bogus\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'from foo import bar as quux\n'),
             {'quux.baz'}),
         {('foo.bar.baz', 'quux.baz', ('foo.bar', 'quux', 0, 27))})
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py',
                       'from foo.bar import quux as bogus\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py',
                       'import foo.bar.baz.quux as bogus\n'),
             {'foo.bar.baz'}), set())
Esempio n. 8
0
 def test_relative_import(self):
     self._assert_imports(
         model.compute_all_imports(
             util.File('foo/bar/some_file.py', 'from . import baz\n')),
         {('foo.bar.baz', 'baz', 0, 17, 'explicit')})
     self._assert_imports(
         model.compute_all_imports(
             util.File('foo/some_file.py', 'from .bar import baz\n')),
         {('foo.bar.baz', 'baz', 0, 20, 'explicit')})
     self._assert_imports(
         model.compute_all_imports(
             util.File('foo/bar/junk/some_file.py',
                       'from .. import baz\n')),
         {('foo.bar.baz', 'baz', 0, 18, 'explicit')})
     self._assert_imports(
         model.compute_all_imports(
             util.File('foo/bar/some_file.py', 'from ..bar import baz\n')),
         {('foo.bar.baz', 'baz', 0, 21, 'explicit')})
     self._assert_imports(
         model.compute_all_imports(
             util.File('junk/junk/some_file.py',
                       'from ...foo.bar import baz\n')),
         {('foo.bar.baz', 'baz', 0, 26, 'explicit')})
     self._assert_imports(
         model.compute_all_imports(
             util.File('junk/junk/some_file.py', 'from ... import foo\n')),
         {('foo', 'foo', 0, 19, 'explicit')})
Esempio n. 9
0
 def test_multiple_imports(self):
     file_info = util.File('some_file.py', ('import foo\n'
                                            'import foo.bar.baz\n'
                                            'from foo.bar import baz\n'
                                            'import foo.quux\n'))
     self._assert_localnames(
         model.localnames_from_localnames(file_info, {'foo.bar.baz'}),
         {('foo.bar.baz', 'foo.bar.baz', ('foo', 'foo', 0, 10)),
          ('foo.bar.baz', 'foo.bar.baz',
           ('foo.bar.baz', 'foo.bar.baz', 11, 29))})
     self._assert_localnames(
         model.localnames_from_localnames(file_info, {'baz'}),
         {('foo.bar.baz', 'baz', ('foo.bar.baz', 'baz', 30, 53))})
Esempio n. 10
0
 def test_with_context(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', ('# import foo as bar\n'
                                        'import os\n'
                                        'import sys\n'
                                        '\n'
                                        'import bogus\n'
                                        'import foo\n'
                                        '\n'
                                        'def bogus():\n'
                                        '    return 1\n')), {'foo'}),
         {('foo', 'foo', ('foo', 'foo', 55, 65))})
Esempio n. 11
0
 def test_multiple_imports(self):
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File(
                 'some_file.py',
                 (
                     'import foo\n'
                     'import foo.bar.baz\n'
                     'from foo.bar import baz\n'
                     # NOTE(benkraft): Since we found a more explicit import,
                     # we don't include this one in the output.
                     'import foo.quux\n')),
             {'foo.bar.baz'}),
         {('foo.bar.baz', 'foo.bar.baz', ('foo', 'foo', 0, 10)),
          ('foo.bar.baz', 'foo.bar.baz',
           ('foo.bar.baz', 'foo.bar.baz', 11, 29)),
          ('foo.bar.baz', 'baz', ('foo.bar.baz', 'baz', 30, 53))})
Esempio n. 12
0
    def test_late_import(self):
        file_info = util.File('some_file.py', ('def f():\n'
                                               '    import foo\n'))
        self._assert_localnames(
            model.localnames_from_localnames(file_info, {'foo'}),
            {('foo', 'foo', ('foo', 'foo', 13, 23))})

        self._assert_localnames(
            model.localnames_from_localnames(
                file_info, {'foo'},
                imports=model.compute_all_imports(file_info)),
            {('foo', 'foo', ('foo', 'foo', 13, 23))})

        self._assert_localnames(
            model.localnames_from_localnames(
                file_info, {'foo'},
                imports=model.compute_all_imports(file_info,
                                                  toplevel_only=True)), set())
Esempio n. 13
0
 def test_other_imports(self):
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'import bogus\n'), {'foo'}), set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'import bogus.foo.bar.baz\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'from bogus import foo\n'), {'foo'}),
         set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'from bogus import foo\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'from bogus import foo, bar\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'from foo.bogus import bar, baz\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'import bar, baz\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'import bar as foo, baz as quux\n'),
             {'foo.bar.baz'}), set())
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py',
                       'import bogus  # (with a comment)\n'), {'foo'}),
         set())
Esempio n. 14
0
    def test_within_node(self):
        file_info = util.File('some_file.py', ('import bar\n\n\n'
                                               'def f():\n'
                                               '    import foo as bar\n'))
        def_node = file_info.tree.body[1]

        self._assert_localnames(
            model.localnames_from_localnames(file_info, {'bar'}),
            {('bar', 'bar', ('bar', 'bar', 0, 10)),
             ('foo', 'bar', ('foo', 'bar', 26, 43))})
        self._assert_localnames(
            model.localnames_from_localnames(
                file_info, {'bar'},
                imports=model.compute_all_imports(file_info)),
            {('bar', 'bar', ('bar', 'bar', 0, 10)),
             ('foo', 'bar', ('foo', 'bar', 26, 43))})
        self._assert_localnames(
            model.localnames_from_localnames(file_info, {'bar'},
                                             imports=model.compute_all_imports(
                                                 file_info,
                                                 within_node=def_node)),
            {('foo', 'bar', ('foo', 'bar', 26, 43))})
Esempio n. 15
0
 def _create_import(self, import_text):
     """Return an Import object for the given text."""
     (imp, ) = list(
         model.compute_all_imports(util.File('some_file.py', import_text)))
     return imp
Esempio n. 16
0
 def test_simple(self):
     self._assert_imports(
         model.compute_all_imports(util.File('some_file.py',
                                             'import foo\n')),
         {('foo', 'foo', 0, 10)})
Esempio n. 17
0
 def test_from_import(self):
     self._assert_localnames(
         model.localnames_from_fullnames(
             util.File('some_file.py', 'from foo.bar import baz\n'),
             {'foo.bar.baz'}),
         {('foo.bar.baz', 'baz', ('foo.bar.baz', 'baz', 0, 23))})
Esempio n. 18
0
 def test_simple(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo\n'), {'foo'}),
         {('foo', 'foo', ('foo', 'foo', 0, 10))})
Esempio n. 19
0
 def test_with_dots(self):
     self._assert_localnames(
         model.localnames_from_localnames(
             util.File('some_file.py', 'import foo.bar.baz\n'),
             {'foo.bar.baz'}), {('foo.bar.baz', 'foo.bar.baz',
                                 ('foo.bar.baz', 'foo.bar.baz', 0, 18))})