def test_ini(self) -> None: Config.from_ini(StdPath("config.ini"), "\n".join(["[importanize]" ])) == Config(StdPath("config.ini")) Config.from_ini( StdPath("config.ini"), "\n".join([ "[importanize]", "after_imports_new_lines=5", "length=100", "formatter=lines", "groups=", " stdlib", " packages:mypackage", "exclude=exclude", "add_imports=", " import foo", "allow_plugins=false", ]), ) == Config( path=StdPath("config.json"), after_imports_new_lines=5, length=100, formatter=LinesFormatter, groups=[ GroupConfig(type="stdlib"), GroupConfig(type="packages", packages=["foo"]), ], exclude=["exclude"], add_imports=[ImportStatement("foo")], are_plugins_allowed=False, )
def test_merged_config(self) -> None: r = RuntimeConfig( path_names=["-"], formatter_name="lines", length=100, _config=Config(add_imports=[ImportStatement("foo")]), ) assert r.merged_config.length == 100 assert r.merged_config.formatter is LinesFormatter assert not r.merged_config.add_imports
def test_json(self) -> None: assert Config.from_json(StdPath("config.json"), "{}") == Config(StdPath("config.json")) assert Config.from_json( StdPath("config.json"), json.dumps({ "after_imports_new_lines": "5", "length": "100", "formatter": "lines", "groups": [{ "type": "remainder" }], "exclude": ["exclude"], "add_imports": ["import foo"], }), ) == Config( path=StdPath("config.json"), after_imports_new_lines=5, length=100, formatter=LinesFormatter, groups=[GroupConfig(type="remainder")], exclude=["exclude"], add_imports=(ImportStatement("foo"), ), )
def test_from_config(self) -> None: groups = ImportGroups.from_config(config=Config( groups=[GroupConfig(type="stdlib")])) assert len(groups.groups) == 1 assert isinstance(groups.groups[0], StdLibGroup)
def test_bool(self) -> None: assert not Config.default() assert Config(path=Path("setup.py"))
def test_str(self) -> None: assert str(Config.default()) == "<default pep8>" assert str(Config(path=Path("setup.py"))) == "setup.py"
def test_merge(self) -> None: c = Config.default().merge(Config(length=100, formatter=LinesFormatter)) assert c.length == 100 assert c.formatter is LinesFormatter
def test_add_imports(self) -> None: assert RuntimeConfig(_config=Config( add_imports=[ImportStatement("foo")])).add_imports assert not RuntimeConfig( path_names=["-"], _config=Config(add_imports=[ImportStatement("foo")])).add_imports
def test_formatter(self) -> None: assert (RuntimeConfig(_config=Config( formatter=GroupedFormatter)).formatter is GroupedFormatter) assert (RuntimeConfig( formatter_name="lines", _config=Config( formatter=GroupedFormatter)).formatter is LinesFormatter)
RuntimeConfig, run_importanize_on_source, run_importanize_on_text, ) from importanize.statements import ImportLeaf, ImportStatement from importanize.utils import OpenBytesIO, OpenStringIO, StdPath TEST_DATA = StdPath(__file__).parent / "test_data" CONFIG = Config( # need path so that subconfigs are not found within test_data subfolder path=TEST_DATA / "config", add_imports=[ ImportStatement( "__future__", leafs=[ ImportLeaf("absolute_import"), ImportLeaf("print_function"), ImportLeaf("unicode_literals"), ], ) ], are_plugins_allowed=False, plugins=[], ) class TestRuntimeConfig: config_path = str( (Path(__file__).parent.parent / IMPORTANIZE_SETUP_CONFIG).resolve()) def test_paths(self) -> None: assert RuntimeConfig(path_names=["foo"]).paths == [Path("foo")]