예제 #1
0
 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,
     )
예제 #2
0
    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
예제 #3
0
 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"), ),
     )
예제 #4
0
    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)
예제 #5
0
 def test_bool(self) -> None:
     assert not Config.default()
     assert Config(path=Path("setup.py"))
예제 #6
0
 def test_str(self) -> None:
     assert str(Config.default()) == "<default pep8>"
     assert str(Config(path=Path("setup.py"))) == "setup.py"
예제 #7
0
 def test_merge(self) -> None:
     c = Config.default().merge(Config(length=100,
                                       formatter=LinesFormatter))
     assert c.length == 100
     assert c.formatter is LinesFormatter
예제 #8
0
 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
예제 #9
0
 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)
예제 #10
0
    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")]