1{ lib
2, buildPythonPackage
3, factory-boy
4, faker
5, fetchFromGitHub
6, importlib-metadata
7, numpy
8, pytest-xdist
9, pytestCheckHook
10, pythonOlder
11, setuptools
12}:
13
14buildPythonPackage rec {
15 pname = "pytest-randomly";
16 version = "3.13.0";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.8";
20
21 src = fetchFromGitHub {
22 repo = pname;
23 owner = "pytest-dev";
24 rev = version;
25 hash = "sha256-bxbW22Nf/0hfJYSiz3xdrNCzrb7vZwuVvSIrWl0Bkv4=";
26 };
27
28 nativeBuildInputs = [
29 setuptools
30 ];
31
32 propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
33 importlib-metadata
34 ];
35
36 nativeCheckInputs = [
37 factory-boy
38 faker
39 numpy
40 pytest-xdist
41 pytestCheckHook
42 ];
43
44 # needs special invocation, copied from tox.ini
45 pytestFlagsArray = [
46 "-p"
47 "no:randomly"
48 ];
49
50 pythonImportsCheck = [
51 "pytest_randomly"
52 ];
53
54 meta = with lib; {
55 changelog = "https://github.com/pytest-dev/pytest-randomly/blob/${version}/CHANGELOG.rst";
56 description = "Pytest plugin to randomly order tests and control random.seed";
57 homepage = "https://github.com/pytest-dev/pytest-randomly";
58 license = licenses.mit;
59 maintainers = with maintainers; [ sternenseemann ];
60 };
61}