Ejemplo n.º 1
0
 def _check_basic(self, input_module_path, input_symbol, input_statement):
     """Checks all but to_str(), returning the imported_symbol instance."""
     statement = ast.parse(input_statement).body[0]
     symbol = ImportedSymbol.get_symbol_from_statement(statement)
     msg = f'Expected symbol name "{input_symbol}", found "{symbol}"'
     self.assertEqual(symbol, input_symbol, msg)
     module_path = ImportedSymbol.get_module_path_from_statement(statement)
     msg = f'Expected module path "{input_module_path}", ' f'found "{module_path}"'
     self.assertEqual(module_path, input_module_path, msg)
     imported_symbol = ImportedSymbol(module_path, symbol)
     self.assertEqual(imported_symbol,
                      ImportedSymbol.from_statement(statement))
     return imported_symbol
Ejemplo n.º 2
0
 def add_imported_symbol(self, statement):
     """
     Keeps track of symbol names and importable entities
     """
     for index, name in enumerate(statement.names):
         final_name = self._get_name_from_alias_statement(name)
         imported_symbol = ImportedSymbol.from_statement(
             statement, os.path.abspath(self.path), index)
         self.imported_symbols[final_name] = imported_symbol
Ejemplo n.º 3
0
 def test_compound_dont_know_if_symbol_is_module(self):
     imported_symbol = ImportedSymbol("avocado.utils", "BaseClass",
                                      __file__)
     self.assertTrue(imported_symbol.is_importable(False))
Ejemplo n.º 4
0
 def test_non_existing_module(self):
     imported_symbol = ImportedSymbol("avocado.utils",
                                      "non_existing_symbol", __file__)
     self.assertFalse(imported_symbol.is_importable(True))
Ejemplo n.º 5
0
 def test_single(self):
     self.assertEqual(
         ImportedSymbol._split_last_module_path_component('os'), ('', 'os'))
Ejemplo n.º 6
0
 def test_compound(self):
     imported_symbol = ImportedSymbol("avocado.utils", "software_manager",
                                      __file__)
     self.assertTrue(imported_symbol.is_importable(True))
Ejemplo n.º 7
0
 def test_no_relative_import_from(self):
     statement = ast.parse("from os import path").body[0]
     self.assertEqual(ImportedSymbol._get_relative_prefix(statement), "")
Ejemplo n.º 8
0
 def test_relative_import_from_same(self):
     statement = ast.parse("from .utils import function").body[0]
     self.assertEqual(ImportedSymbol._get_relative_prefix(statement), ".")
Ejemplo n.º 9
0
 def test_same_from_statement(self):
     statement = ast.parse("from .test_bar import symbol").body[0]
     importer = "/abs/fs/location/of/selftests/unit/test_foo.py"
     symbol = ImportedSymbol.from_statement(statement, importer)
     self.assertEqual(symbol.get_relative_module_fs_path(),
                      "/abs/fs/location/of/selftests/unit")
Ejemplo n.º 10
0
 def test_relative_compound(self):
     res = ImportedSymbol._split_last_module_path_component("...a.b.c.d")
     self.assertEqual(res, ("a.b.c", "d"))
Ejemplo n.º 11
0
 def test_incorrect_statement_type(self):
     statement = ast.parse("pass").body[0]
     with self.assertRaises(ValueError):
         _ = ImportedSymbol.get_symbol_from_statement(statement)
Ejemplo n.º 12
0
 def test_upper(self):
     imported_symbol = ImportedSymbol("..module", "symbol",
                                      "/abs/fs/location/test.py")
     self.assertEqual(imported_symbol.get_relative_module_fs_path(),
                      "/abs/fs")
Ejemplo n.º 13
0
 def test_symbol_noalias(self):
     statement = ast.parse("from os import path").body[0]
     imported_symbol = ImportedSymbol.from_statement(statement)
     self.assertEqual(imported_symbol.symbol, "path")
     self.assertEqual(imported_symbol.symbol_name, "path")
Ejemplo n.º 14
0
 def test_compound(self):
     self.assertEqual(
         ImportedSymbol._split_last_module_path_component("os.path"),
         ("os", "path"))
Ejemplo n.º 15
0
 def test_module_noalias(self):
     statement = ast.parse("import os").body[0]
     imported_symbol = ImportedSymbol.from_statement(statement)
     self.assertEqual(imported_symbol.module_path, "os")
     self.assertEqual(imported_symbol.module_name, "os")
Ejemplo n.º 16
0
 def test_non_existing_symbol(self):
     imported_symbol = ImportedSymbol("non_existing_module", "", __file__)
     self.assertFalse(imported_symbol.is_importable())
Ejemplo n.º 17
0
 def test_relative_simple(self):
     self.assertEqual(
         ImportedSymbol._split_last_module_path_component("..utils"),
         ("", "utils"))
Ejemplo n.º 18
0
 def test_non_existing_module_path(self):
     imported_symbol = ImportedSymbol("avocado.utils.non_existing", "",
                                      __file__)
     self.assertFalse(imported_symbol.is_importable())
Ejemplo n.º 19
0
 def test_compound(self):
     statement = ast.parse("from path import parent3").body[0]
     importer = "/abs/fs/location/of/imports.py"
     symbol = ImportedSymbol.from_statement(statement, importer)
     self.assertEqual(symbol.get_parent_fs_path(),
                      "/abs/fs/location/of/path")
Ejemplo n.º 20
0
 def test_no_relative_import(self):
     statement = ast.parse("import os").body[0]
     self.assertEqual(ImportedSymbol._get_relative_prefix(statement), "")
Ejemplo n.º 21
0
 def test_single(self):
     self.assertEqual(
         ImportedSymbol._split_last_module_path_component("os"), ("", "os"))
Ejemplo n.º 22
0
 def test_relative_import_from_upper(self):
     statement = ast.parse("from ..selftests import utils").body[0]
     self.assertEqual(ImportedSymbol._get_relative_prefix(statement), "..")
Ejemplo n.º 23
0
 def test_relative_simple(self):
     self.assertEqual(
         ImportedSymbol._split_last_module_path_component('..utils'),
         ('', 'utils'))
Ejemplo n.º 24
0
 def test_compound_levels(self):
     statement = ast.parse("from .path.parent8 import Class8").body[0]
     importer = "/abs/fs/location/of/imports.py"
     symbol = ImportedSymbol.from_statement(statement, importer)
     self.assertEqual(symbol.get_parent_fs_path(), "/abs/fs/location/of")
Ejemplo n.º 25
0
 def test_relative_compound(self):
     res = ImportedSymbol._split_last_module_path_component('...a.b.c.d')
     self.assertEqual(res, ('a.b.c', 'd'))
Ejemplo n.º 26
0
 def test_single(self):
     imported_symbol = ImportedSymbol("avocado", "", __file__)
     self.assertTrue(imported_symbol.is_importable())
Ejemplo n.º 27
0
 def test_compound(self):
     self.assertEqual(
         ImportedSymbol._split_last_module_path_component('os.path'),
         ('os', 'path'))