Esempio n. 1
0
 def test_write_cache_read_cache(self) -> None:
     with cache_dir() as workspace:
         src = (workspace / "test.py").resolve()
         src.touch()
         black.write_cache({}, [src])
         cache = black.read_cache()
         self.assertIn(src, cache)
         self.assertEqual(cache[src], black.get_cache_info(src))
Esempio n. 2
0
 def test_write_cache_read_cache(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir() as workspace:
         src = (workspace / "test.py").resolve()
         src.touch()
         black.write_cache({}, [src], black.DEFAULT_LINE_LENGTH, mode)
         cache = black.read_cache(black.DEFAULT_LINE_LENGTH, mode)
         self.assertIn(src, cache)
         self.assertEqual(cache[src], black.get_cache_info(src))
Esempio n. 3
0
 def test_write_cache_read_cache(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir() as workspace:
         src = (workspace / "test.py").resolve()
         src.touch()
         black.write_cache({}, [src], black.DEFAULT_LINE_LENGTH, mode)
         cache = black.read_cache(black.DEFAULT_LINE_LENGTH, mode)
         self.assertIn(src, cache)
         self.assertEqual(cache[src], black.get_cache_info(src))
Esempio n. 4
0
 def test_filter_cached(self) -> None:
     with TemporaryDirectory() as workspace:
         path = Path(workspace)
         uncached = (path / "uncached").resolve()
         cached = (path / "cached").resolve()
         cached_but_changed = (path / "changed").resolve()
         uncached.touch()
         cached.touch()
         cached_but_changed.touch()
         cache = {cached: black.get_cache_info(cached), cached_but_changed: (0.0, 0)}
         todo, done = black.filter_cached(
             cache, [uncached, cached, cached_but_changed]
         )
         self.assertEqual(todo, [uncached, cached_but_changed])
         self.assertEqual(done, [cached])
Esempio n. 5
0
 def test_filter_cached(self) -> None:
     with TemporaryDirectory() as workspace:
         path = Path(workspace)
         uncached = (path / "uncached").resolve()
         cached = (path / "cached").resolve()
         cached_but_changed = (path / "changed").resolve()
         uncached.touch()
         cached.touch()
         cached_but_changed.touch()
         cache = {cached: black.get_cache_info(cached), cached_but_changed: (0.0, 0)}
         todo, done = black.filter_cached(
             cache, [uncached, cached, cached_but_changed]
         )
         self.assertEqual(todo, [uncached, cached_but_changed])
         self.assertEqual(done, [cached])
Esempio n. 6
0
def reformat_one(
    src: Path,
    line_length: int,
    write_back: black.WriteBack,
    mode: black.FileMode,
    clear_output: bool,
    report: black.Report,
    quiet: bool,
    verbose: bool,
) -> None:
    """Reformat a single file under `src`."""
    try:

        sub_report = SubReport(write_back=write_back)
        changed = black.Changed.NO

        cache: black.Cache = {}
        if write_back is not black.WriteBack.DIFF:
            cache = black.read_cache(line_length, mode)
            res_src = src.resolve()
            if res_src in cache and cache[res_src] == black.get_cache_info(
                res_src
            ):
                changed = black.Changed.CACHED
        if changed is not black.Changed.CACHED:
            sub_report = format_file_in_place(
                src,
                line_length=line_length,
                write_back=write_back,
                mode=mode,
                clear_output=clear_output,
                sub_report=sub_report,
            )
            if sub_report.change_count or sub_report.output_change_count:
                changed = black.Changed.YES
        if (
            write_back is black.WriteBack.YES
            and changed is not black.Changed.CACHED
        ) or (
            write_back is black.WriteBack.CHECK and changed is black.Changed.NO
        ):
            black.write_cache(cache, [src], line_length, mode)
        report.done(src, changed)
        if changed is not black.Changed.CACHED and (verbose or not quiet):
            click.secho(f"    {sub_report}", err=True)
    except Exception as exc:
        report.failed(src, str(exc))