コード例 #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))
コード例 #2
0
ファイル: test_black.py プロジェクト: jianjian12138/black
 def test_read_cache_line_lengths(self) -> None:
     with cache_dir() as workspace:
         path = (workspace / "file.py").resolve()
         path.touch()
         black.write_cache({}, [path], 1)
         one = black.read_cache(1)
         self.assertIn(path, one)
         two = black.read_cache(2)
         self.assertNotIn(path, two)
コード例 #3
0
ファイル: test_black.py プロジェクト: joslarson/black
 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))
コード例 #4
0
ファイル: test_black.py プロジェクト: mbelletti/black
 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))
コード例 #5
0
ファイル: test_black.py プロジェクト: mbelletti/black
 def test_read_cache_line_lengths(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir() as workspace:
         path = (workspace / "file.py").resolve()
         path.touch()
         black.write_cache({}, [path], 1, mode)
         one = black.read_cache(1, mode)
         self.assertIn(path, one)
         two = black.read_cache(2, mode)
         self.assertNotIn(path, two)
コード例 #6
0
 def test_cache_single_file_already_cached(self) -> None:
     with cache_dir() as workspace:
         src = (workspace / "test.py").resolve()
         with src.open("w") as fobj:
             fobj.write("print('hello')")
         black.write_cache({}, [src])
         result = CliRunner().invoke(black.main, [str(src)])
         self.assertEqual(result.exit_code, 0)
         with src.open("r") as fobj:
             self.assertEqual(fobj.read(), "print('hello')")
コード例 #7
0
ファイル: test_black.py プロジェクト: joslarson/black
 def test_read_cache_line_lengths(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir() as workspace:
         path = (workspace / "file.py").resolve()
         path.touch()
         black.write_cache({}, [path], 1, mode)
         one = black.read_cache(1, mode)
         self.assertIn(path, one)
         two = black.read_cache(2, mode)
         self.assertNotIn(path, two)
コード例 #8
0
ファイル: test_black.py プロジェクト: mbelletti/black
 def test_cache_single_file_already_cached(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir() as workspace:
         src = (workspace / "test.py").resolve()
         with src.open("w") as fobj:
             fobj.write("print('hello')")
         black.write_cache({}, [src], black.DEFAULT_LINE_LENGTH, mode)
         result = CliRunner().invoke(black.main, [str(src)])
         self.assertEqual(result.exit_code, 0)
         with src.open("r") as fobj:
             self.assertEqual(fobj.read(), "print('hello')")
コード例 #9
0
ファイル: cli.py プロジェクト: yoavz/black-nb
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))
コード例 #10
0
 def test_cache_multiple_files(self) -> None:
     with cache_dir() as workspace:
         one = (workspace / "one.py").resolve()
         with one.open("w") as fobj:
             fobj.write("print('hello')")
         two = (workspace / "two.py").resolve()
         with two.open("w") as fobj:
             fobj.write("print('hello')")
         black.write_cache({}, [one])
         result = CliRunner().invoke(black.main, [str(workspace)])
         self.assertEqual(result.exit_code, 0)
         with one.open("r") as fobj:
             self.assertEqual(fobj.read(), "print('hello')")
         with two.open("r") as fobj:
             self.assertEqual(fobj.read(), 'print("hello")\n')
         cache = black.read_cache()
         self.assertIn(one, cache)
         self.assertIn(two, cache)
コード例 #11
0
ファイル: test_black.py プロジェクト: jianjian12138/black
 def test_cache_multiple_files(self) -> None:
     with cache_dir() as workspace, patch("black.ProcessPoolExecutor",
                                          new=ThreadPoolExecutor):
         one = (workspace / "one.py").resolve()
         with one.open("w") as fobj:
             fobj.write("print('hello')")
         two = (workspace / "two.py").resolve()
         with two.open("w") as fobj:
             fobj.write("print('hello')")
         black.write_cache({}, [one], black.DEFAULT_LINE_LENGTH)
         result = CliRunner().invoke(black.main, [str(workspace)])
         self.assertEqual(result.exit_code, 0)
         with one.open("r") as fobj:
             self.assertEqual(fobj.read(), "print('hello')")
         with two.open("r") as fobj:
             self.assertEqual(fobj.read(), 'print("hello")\n')
         cache = black.read_cache(black.DEFAULT_LINE_LENGTH)
         self.assertIn(one, cache)
         self.assertIn(two, cache)
コード例 #12
0
ファイル: test_black.py プロジェクト: mbelletti/black
 def test_cache_multiple_files(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir() as workspace, patch(
         "black.ProcessPoolExecutor", new=ThreadPoolExecutor
     ):
         one = (workspace / "one.py").resolve()
         with one.open("w") as fobj:
             fobj.write("print('hello')")
         two = (workspace / "two.py").resolve()
         with two.open("w") as fobj:
             fobj.write("print('hello')")
         black.write_cache({}, [one], black.DEFAULT_LINE_LENGTH, mode)
         result = CliRunner().invoke(black.main, [str(workspace)])
         self.assertEqual(result.exit_code, 0)
         with one.open("r") as fobj:
             self.assertEqual(fobj.read(), "print('hello')")
         with two.open("r") as fobj:
             self.assertEqual(fobj.read(), 'print("hello")\n')
         cache = black.read_cache(black.DEFAULT_LINE_LENGTH, mode)
         self.assertIn(one, cache)
         self.assertIn(two, cache)
コード例 #13
0
ファイル: test_black.py プロジェクト: joslarson/black
 def test_write_cache_creates_directory_if_needed(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir(exists=False) as workspace:
         self.assertFalse(workspace.exists())
         black.write_cache({}, [], black.DEFAULT_LINE_LENGTH, mode)
         self.assertTrue(workspace.exists())
コード例 #14
0
 def test_write_cache_write_fail(self) -> None:
     with cache_dir(), patch.object(Path, "open") as mock:
         mock.side_effect = OSError
         black.write_cache({}, [])
コード例 #15
0
 def test_write_cache_creates_directory_if_needed(self) -> None:
     with cache_dir(exists=False) as workspace:
         self.assertFalse(workspace.exists())
         black.write_cache({}, [])
         self.assertTrue(workspace.exists())
コード例 #16
0
ファイル: test_black.py プロジェクト: mbelletti/black
 def test_write_cache_creates_directory_if_needed(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir(exists=False) as workspace:
         self.assertFalse(workspace.exists())
         black.write_cache({}, [], black.DEFAULT_LINE_LENGTH, mode)
         self.assertTrue(workspace.exists())
コード例 #17
0
ファイル: test_black.py プロジェクト: mbelletti/black
 def test_write_cache_write_fail(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir(), patch.object(Path, "open") as mock:
         mock.side_effect = OSError
         black.write_cache({}, [], black.DEFAULT_LINE_LENGTH, mode)
コード例 #18
0
ファイル: test_black.py プロジェクト: joslarson/black
 def test_write_cache_write_fail(self) -> None:
     mode = black.FileMode.AUTO_DETECT
     with cache_dir(), patch.object(Path, "open") as mock:
         mock.side_effect = OSError
         black.write_cache({}, [], black.DEFAULT_LINE_LENGTH, mode)