def test_local_import_case() -> None: """ Test code with local import case. """ # Given module = Module("module.toto") source_file = SourceFile(module=module, code=SourceCode(_LOCAL_CASE)) # When dependencies = get_import_from_dependencies(source_file, PARSER) # Then assert dependencies == _LOCAL_RESULT_IMPORT_FROM
def test_simple_case() -> None: """ Test simple code case. """ # Given module = Module("toto_program") source_file = SourceFile(module=module, code=SourceCode(_SIMPLE_CASE)) # When dependencies = get_import_from_dependencies(source_file, PARSER) # Then assert dependencies == _SIMPLE_RESULT_IMPORT_FROM
def _iter_error(self, source_file: SourceFile) -> Iterator[DependencyError]: rules = self._get_rules(source_file.module) self.all_rules.update(set(rules)) dependencies = get_import_from_dependencies(source_file, self.parser) dependencies = self.std_lib_filter.filter(dependencies) for dependency in dependencies: try: self.used_rules |= check_dependency(self.parser, dependency, rules) except NotAllowedDependencyException as error: yield DependencyError( source_file.module, error.dependency, tuple(sorted(error.authorized_modules)), )
def test_empty() -> None: """ Test empty code case. """ # Given module = Module("") source_code = SourceCode("") source_file = SourceFile(module=module, code=source_code) # When dependencies = get_import_from_dependencies(source_file, PARSER) # Then assert dependencies == frozenset()
def test_multi_imports_after_from() -> None: # Given module = Module("module.toto") source_file = SourceFile( module=module, code=SourceCode( "from module import amodule, othermodule, moduleagain"), ) # When dependencies = get_import_from_dependencies(source_file, PARSER) # Then assert dependencies == set((Dependency( Module("module"), frozenset(( Module("amodule"), Module("othermodule"), Module("moduleagain"), )), ), ))