python312Packages.hypothesmith: modernize

This commit is contained in:
Robert Schütz
2024-09-01 09:56:42 -07:00
parent e08e458fb8
commit 0e0552e789
2 changed files with 10 additions and 110 deletions
@@ -1,5 +1,6 @@
{
lib,
black,
buildPythonPackage,
fetchPypi,
hypothesis,
@@ -7,59 +8,45 @@
libcst,
parso,
pytestCheckHook,
pytest-cov-stub,
pytest-xdist,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "hypothesmith";
version = "0.3.3";
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.9";
src = fetchPypi {
inherit pname version;
hash = "sha256-lsFIAtbI6F2JdSZBdoeNtUso0u2SH9v+3C5rjOPIFxY=";
};
patches = [ ./remove-black.patch ];
build-system = [ setuptools ];
postPatch = ''
substituteInPlace setup.py \
--replace "lark-parser" "lark"
substituteInPlace tox.ini \
--replace "--cov=hypothesmith" "" \
--replace "--cov-branch" "" \
--replace "--cov-report=term-missing:skip-covered" "" \
--replace "--cov-fail-under=100" ""
'';
propagatedBuildInputs = [
dependencies = [
hypothesis
lark
libcst
];
nativeCheckInputs = [
black
parso
pytestCheckHook
pytest-cov-stub
pytest-xdist
];
pytestFlagsArray = [ "-v" ];
disabledTests = [
# https://github.com/Zac-HD/hypothesmith/issues/21
# super slow
"test_source_code_from_libcst_node_type"
];
disabledTestPaths = [
# missing blib2to3
"tests/test_syntactic.py"
];
pythonImportsCheck = [ "hypothesmith" ];
meta = with lib; {
@@ -1,87 +0,0 @@
diff --git a/tests/test_cst.py b/tests/test_cst.py
index 8532240..bdba2d7 100644
--- a/tests/test_cst.py
+++ b/tests/test_cst.py
@@ -3,7 +3,6 @@ import ast
from inspect import isabstract
from operator import attrgetter
-import black
import libcst
import parso
import pytest
@@ -51,27 +50,6 @@ def test_ast_unparse_from_nodes(source_code):
assert ast.dump(first) == ast.dump(second)
-@pytest.mark.xfail
-@example("A\u2592", black.Mode())
-@given(
- source_code=hypothesmith.from_node(),
- mode=st.builds(
- black.Mode,
- line_length=st.just(88) | st.integers(0, 200),
- string_normalization=st.booleans(),
- is_pyi=st.booleans(),
- ),
-)
-def test_black_autoformatter_from_nodes(source_code, mode):
- try:
- result = black.format_file_contents(source_code, fast=False, mode=mode)
- except black.NothingChanged:
- pass
- else:
- with pytest.raises(black.NothingChanged):
- black.format_file_contents(result, fast=False, mode=mode)
-
-
@given(source_code=hypothesmith.from_node())
def test_from_node_always_compilable(source_code):
compile(source_code, "<string>", "exec")
diff --git a/tests/test_syntactic.py b/tests/test_syntactic.py
index 7fe9835..17c4f7c 100644
--- a/tests/test_syntactic.py
+++ b/tests/test_syntactic.py
@@ -3,7 +3,6 @@ import ast
import io
import tokenize
-import black
import blib2to3
import parso
import pytest
@@ -58,34 +57,6 @@ def test_ast_unparse_from_grammar(source_code):
assert ast.dump(first) == ast.dump(second)
-@example("\\", black.Mode())
-@example("A#\r#", black.Mode())
-@given(
- source_code=hypothesmith.from_grammar(),
- mode=st.builds(
- black.Mode,
- line_length=st.just(88) | st.integers(0, 200),
- string_normalization=st.booleans(),
- is_pyi=st.booleans(),
- ),
-)
-def test_black_autoformatter_from_grammar(source_code, mode):
- try:
- result = black.format_file_contents(source_code, fast=False, mode=mode)
- except black.NothingChanged:
- pass
- except blib2to3.pgen2.tokenize.TokenError:
- # Fails to tokenise e.g. "\\", though compile("\\", "<string>", "exec") works.
- # See https://github.com/psf/black/issues/1012
- reject()
- except black.InvalidInput:
- # e.g. "A#\r#", see https://github.com/psf/black/issues/970
- reject()
- else:
- with pytest.raises(black.NothingChanged):
- black.format_file_contents(result, fast=False, mode=mode)
-
-
@given(source_code=hypothesmith.from_grammar("eval_input"))
def test_eval_input_generation(source_code):
compile(source_code, filename="<string>", mode="eval")