Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_format_file_contents(self) -> None:
empty = ""
mode = black.FileMode()
with self.assertRaises(black.NothingChanged):
black.format_file_contents(empty, mode=mode, fast=False)
just_nl = "\n"
with self.assertRaises(black.NothingChanged):
black.format_file_contents(just_nl, mode=mode, fast=False)
same = "j = [1, 2, 3]\n"
with self.assertRaises(black.NothingChanged):
black.format_file_contents(same, mode=mode, fast=False)
different = "j = [1,2,3]"
expected = same
actual = black.format_file_contents(different, mode=mode, fast=False)
self.assertEqual(expected, actual)
invalid = "return if you can"
with self.assertRaises(black.InvalidInput) as e:
black.format_file_contents(invalid, mode=mode, fast=False)
self.assertEqual(str(e.exception), "Cannot parse: 1:7: return if you can")
def normalize_formatting(code: str) -> str:
"""Returns a string of the code with normalized formatting for easier compares"""
try:
return black.format_file_contents(code, line_length=88, fast=True)
except black.NothingChanged:
return code
def test_format_file_contents(self) -> None:
empty = ""
mode = black.FileMode()
with self.assertRaises(black.NothingChanged):
black.format_file_contents(empty, mode=mode, fast=False)
just_nl = "\n"
with self.assertRaises(black.NothingChanged):
black.format_file_contents(just_nl, mode=mode, fast=False)
same = "j = [1, 2, 3]\n"
with self.assertRaises(black.NothingChanged):
black.format_file_contents(same, mode=mode, fast=False)
different = "j = [1,2,3]"
expected = same
actual = black.format_file_contents(different, mode=mode, fast=False)
self.assertEqual(expected, actual)
invalid = "return if you can"
with self.assertRaises(black.InvalidInput) as e:
black.format_file_contents(invalid, mode=mode, fast=False)
self.assertEqual(str(e.exception), "Cannot parse: 1:7: return if you can")
def format_text(*, text, config):
mode = black.FileMode(
target_versions=config["target_version"],
line_length=config["line_length"],
is_pyi=config["pyi"],
string_normalization=not config["skip_string_normalization"],
)
return black.format_file_contents(text, fast=config["fast"], mode=mode)
else:
with open(self.filename, "rb") as buf:
source, _, _ = black.decode_bytes(buf.read())
except Exception as e:
source = ""
msg = "900 Failed to load file: %s" % e
if not source and not msg:
# Empty file (good)
return
elif source:
# Call black...
try:
file_mode = self._file_mode
file_mode.is_pyi = self.filename and self.filename.endswith(".pyi")
new_code = black.format_file_contents(
source, mode=file_mode, fast=False
)
except black.NothingChanged:
return
except black.InvalidInput:
msg = "901 Invalid input."
except BadBlackConfig as err:
msg = "997 Invalid TOML file: %s" % err
except Exception as err:
msg = "999 Unexpected exception: %s" % err
else:
assert (
new_code != source
), "Black made changes without raising NothingChanged"
line, col = find_diff_start(source, new_code)
line += 1 # Strange as col seems to be zero based?