1{ 2 lib, 3 buildPythonPackage, 4 fetchPypi, 5 fetchpatch2, 6 mock, 7 pytestCheckHook, 8 pythonOlder, 9 setuptools, 10}: 11 12buildPythonPackage rec { 13 pname = "parameterized"; 14 version = "0.9.0"; 15 format = "pyproject"; 16 17 disabled = pythonOlder "3.7"; 18 19 src = fetchPypi { 20 inherit pname version; 21 hash = "sha256-f8kFJyzvpPNkwaNCnLvpwPmLeTmI77W/kKrIDwjbCbE="; 22 }; 23 24 patches = [ 25 (fetchpatch2 { 26 name = "parameterized-docstring-3.13-compat.patch"; 27 url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-python/parameterized/files/parameterized-0.9.0-py313-test.patch?id=dec60bb6900d6ebdaaa6aa1dcb845b30b739f9b5"; 28 hash = "sha256-tWcN0eRC0oRHrOaa/cctXLhi1WapDKvxO36e6gU6UIk="; 29 }) 30 ]; 31 32 postPatch = '' 33 # broken with pytest 7 and python 3.12 34 # https://github.com/wolever/parameterized/issues/167 35 # https://github.com/wolever/parameterized/pull/162 36 substituteInPlace parameterized/test.py \ 37 --replace 'assert_equal(missing, [])' "" \ 38 --replace "assertRaisesRegexp" "assertRaisesRegex" 39 ''; 40 41 nativeBuildInputs = [ setuptools ]; 42 43 # 'yield' keyword is allowed in fixtures, but not in tests (test_naked_function) 44 doCheck = false; 45 46 checkInputs = [ 47 mock 48 pytestCheckHook 49 ]; 50 51 enabledTestPaths = [ "parameterized/test.py" ]; 52 53 pythonImportsCheck = [ "parameterized" ]; 54 55 meta = with lib; { 56 description = "Parameterized testing with any Python test framework"; 57 homepage = "https://github.com/wolever/parameterized"; 58 changelog = "https://github.com/wolever/parameterized/blob/v${version}/CHANGELOG.txt"; 59 license = licenses.bsd2; 60 maintainers = [ ]; 61 }; 62}