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 checkInputs = [
44 mock
45 pytestCheckHook
46 ];
47
48 pytestFlagsArray = [ "parameterized/test.py" ];
49
50 pythonImportsCheck = [ "parameterized" ];
51
52 meta = with lib; {
53 description = "Parameterized testing with any Python test framework";
54 homepage = "https://github.com/wolever/parameterized";
55 changelog = "https://github.com/wolever/parameterized/blob/v${version}/CHANGELOG.txt";
56 license = licenses.bsd2;
57 maintainers = [ ];
58 };
59}