示例#1
0
    def test_importanize_incompatible_groups(self) -> None:
        self.config.groups = [GroupConfig(type="stdlib")]
        result = next(
            run_importanize_on_source(self.input_text,
                                      RuntimeConfig(_config=self.config)))

        assert not result.is_success
示例#2
0
    def test_importanize_dir(self) -> None:
        result = list(
            run_importanize_on_source(
                self.subconfig_test_data,
                RuntimeConfig(formatter_name="grouped", _config=self.config),
            ))

        assert self.input_few_imports in (i.path for i in result)
示例#3
0
    def test_importanize_lines(self) -> None:
        result = next(
            run_importanize_on_source(
                self.input_text,
                RuntimeConfig(formatter_name="lines", _config=self.config),
            ))

        assert result.organized == self.output_lines.read_text()
示例#4
0
    def test_importanize_skipping_dir(self) -> None:
        self.config.exclude = ["*/test_data"]
        result = list(
            run_importanize_on_source(
                self.test_data,
                RuntimeConfig(formatter_name="grouped", _config=self.config),
            ))

        assert result == []
示例#5
0
    def test_importanize_skipping_file_backslash(self) -> None:
        self.config.exclude = ["*\\test_data\\*.py"]
        result = list(
            run_importanize_on_source(
                self.input_text,
                RuntimeConfig(formatter_name="grouped", _config=self.config),
            ))

        assert result == []
示例#6
0
    def test_importanize_invalid_encoding(self) -> None:
        result = next(
            run_importanize_on_source(
                self.invalid.with_streams(filein=io.BytesIO(
                    "# -*- coding: ascii -*-\nпривет".encode("utf-8"))),
                RuntimeConfig(_config=self.config),
            ))

        assert not result.is_success
示例#7
0
    def test_importanize_no_changes(self) -> None:
        result = next(
            run_importanize_on_source(
                self.output_grouped,
                RuntimeConfig(formatter_name="grouped", _config=self.config),
            ))

        assert result.organized == self.output_grouped.read_text()
        assert not result.has_changes
        assert result.is_success
示例#8
0
    def test_importanize_grouped_no_add_lines(self) -> None:
        self.config.after_imports_normalize_new_lines = False
        result = next(
            run_importanize_on_source(
                self.input_text,
                RuntimeConfig(formatter_name="grouped", _config=self.config),
            ))

        assert result.organized == self.output_grouped_no_add_lines.read_text()
        assert result.has_changes
        assert result.is_success
示例#9
0
    def test_importanize_skipping_file_relative(self) -> None:
        self.config.exclude = ["tests\\test_data/*.py"]
        self.config.path = TEST_DATA.parent.parent / "setup.ini"
        result = list(
            run_importanize_on_source(
                self.input_text,
                RuntimeConfig(
                    formatter_name="grouped",
                    is_subconfig_allowed=False,
                    _config=self.config,
                ),
            ))

        assert result == []
示例#10
0
    def test_importanize_invalid_python(self) -> None:
        result = next(
            run_importanize_on_source(self.invalid,
                                      RuntimeConfig(_config=self.config)))

        assert not result.is_success
示例#11
0
    def test_importanize_no_imports(self) -> None:
        result = next(
            run_importanize_on_source(self.input_no_imports,
                                      RuntimeConfig(_config=self.config)))

        assert result.organized == self.output_no_imports.read_text()