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))
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))
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])
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))