Soft comparison of --required-version (#2832)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> Co-authored-by: Felix Hildén <felix.hilden@gmail.com>
This commit is contained in:
parent
f61299a62a
commit
cae7ae3a4d
@ -5,6 +5,7 @@
|
||||
### Configuration
|
||||
|
||||
- Do not format `__pypackages__` directories by default (#2836)
|
||||
- Add support for specifying stable version with `--required-version` (#2832).
|
||||
|
||||
## 22.1.0
|
||||
|
||||
|
@ -291,7 +291,8 @@ def validate_regex(
|
||||
type=str,
|
||||
help=(
|
||||
"Require a specific version of Black to be running (useful for unifying results"
|
||||
" across many environments e.g. with a pyproject.toml file)."
|
||||
" across many environments e.g. with a pyproject.toml file). It can be"
|
||||
" either a major version number or an exact version."
|
||||
),
|
||||
)
|
||||
@click.option(
|
||||
@ -474,7 +475,11 @@ def main(
|
||||
out(f"Using configuration in '{config}'.", fg="blue")
|
||||
|
||||
error_msg = "Oh no! 💥 💔 💥"
|
||||
if required_version and required_version != __version__:
|
||||
if (
|
||||
required_version
|
||||
and required_version != __version__
|
||||
and required_version != __version__.split(".")[0]
|
||||
):
|
||||
err(
|
||||
f"{error_msg} The required version `{required_version}` does not match"
|
||||
f" the running version `{__version__}`!"
|
||||
|
@ -1198,6 +1198,20 @@ def test_required_version_matches_version(self) -> None:
|
||||
ignore_config=True,
|
||||
)
|
||||
|
||||
def test_required_version_matches_partial_version(self) -> None:
|
||||
self.invokeBlack(
|
||||
["--required-version", black.__version__.split(".")[0], "-c", "0"],
|
||||
exit_code=0,
|
||||
ignore_config=True,
|
||||
)
|
||||
|
||||
def test_required_version_does_not_match_on_minor_version(self) -> None:
|
||||
self.invokeBlack(
|
||||
["--required-version", black.__version__.split(".")[0] + ".999", "-c", "0"],
|
||||
exit_code=1,
|
||||
ignore_config=True,
|
||||
)
|
||||
|
||||
def test_required_version_does_not_match_version(self) -> None:
|
||||
result = BlackRunner().invoke(
|
||||
black.main,
|
||||
|
Loading…
Reference in New Issue
Block a user