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
|
### Configuration
|
||||||
|
|
||||||
- Do not format `__pypackages__` directories by default (#2836)
|
- Do not format `__pypackages__` directories by default (#2836)
|
||||||
|
- Add support for specifying stable version with `--required-version` (#2832).
|
||||||
|
|
||||||
## 22.1.0
|
## 22.1.0
|
||||||
|
|
||||||
|
@ -291,7 +291,8 @@ def validate_regex(
|
|||||||
type=str,
|
type=str,
|
||||||
help=(
|
help=(
|
||||||
"Require a specific version of Black to be running (useful for unifying results"
|
"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(
|
@click.option(
|
||||||
@ -474,7 +475,11 @@ def main(
|
|||||||
out(f"Using configuration in '{config}'.", fg="blue")
|
out(f"Using configuration in '{config}'.", fg="blue")
|
||||||
|
|
||||||
error_msg = "Oh no! 💥 💔 💥"
|
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(
|
err(
|
||||||
f"{error_msg} The required version `{required_version}` does not match"
|
f"{error_msg} The required version `{required_version}` does not match"
|
||||||
f" the running version `{__version__}`!"
|
f" the running version `{__version__}`!"
|
||||||
|
@ -1198,6 +1198,20 @@ def test_required_version_matches_version(self) -> None:
|
|||||||
ignore_config=True,
|
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:
|
def test_required_version_does_not_match_version(self) -> None:
|
||||||
result = BlackRunner().invoke(
|
result = BlackRunner().invoke(
|
||||||
black.main,
|
black.main,
|
||||||
|
Loading…
Reference in New Issue
Block a user