1{
2 lib,
3 allpairspy,
4 approval-utilities,
5 beautifulsoup4,
6 buildPythonPackage,
7 empty-files,
8 fetchFromGitHub,
9 mock,
10 mrjob,
11 numpy,
12 pyperclip,
13 pytest,
14 pytest-asyncio,
15 pytestCheckHook,
16 pythonOlder,
17 setuptools,
18 testfixtures,
19 typing-extensions,
20}:
21
22buildPythonPackage rec {
23 pname = "approvaltests";
24 version = "14.0.0";
25 pyproject = true;
26
27 disabled = pythonOlder "3.8";
28
29 src = fetchFromGitHub {
30 owner = "approvals";
31 repo = "ApprovalTests.Python";
32 rev = "refs/tags/v${version}";
33 hash = "sha256-BTTmmtmFjYBfzbVf/Fi8PwnpVJBcOOBTdFBmGowGez4=";
34 };
35
36 build-system = [ setuptools ];
37
38 dependencies = [
39 allpairspy
40 approval-utilities
41 beautifulsoup4
42 empty-files
43 mock
44 mrjob
45 pyperclip
46 pytest
47 testfixtures
48 typing-extensions
49 ];
50
51 nativeCheckInputs = [
52 numpy
53 pytest-asyncio
54 pytestCheckHook
55 ];
56
57 disabledTests = [
58 # Tests expect paths below ApprovalTests.Python directory
59 "test_received_filename"
60 "test_pytest_namer"
61 ];
62
63 pythonImportsCheck = [
64 "approvaltests.approvals"
65 "approvaltests.reporters.generic_diff_reporter_factory"
66 ];
67
68 meta = with lib; {
69 description = "Assertion/verification library to aid testing";
70 homepage = "https://github.com/approvals/ApprovalTests.Python";
71 changelog = "https://github.com/approvals/ApprovalTests.Python/releases/tag/v${version}";
72 license = licenses.asl20;
73 maintainers = [ ];
74 };
75}