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 setuptools,
17 testfixtures,
18 typing-extensions,
19}:
20
21buildPythonPackage rec {
22 pname = "approvaltests";
23 version = "14.5.0";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "approvals";
28 repo = "ApprovalTests.Python";
29 tag = "v${version}";
30 hash = "sha256-VWYl+8hS9XnvtqmokNntdKGHWSJVlGPomvAEwaBcjY8=";
31 };
32
33 build-system = [ setuptools ];
34
35 dependencies = [
36 allpairspy
37 approval-utilities
38 beautifulsoup4
39 empty-files
40 mock
41 mrjob
42 pyperclip
43 pytest
44 testfixtures
45 typing-extensions
46 ];
47
48 nativeCheckInputs = [
49 numpy
50 pytest-asyncio
51 pytestCheckHook
52 ];
53
54 disabledTests = [
55 "test_preceding_whitespace"
56 "test_command_line_verify"
57 # Tests expect paths below ApprovalTests.Python directory
58 "test_received_filename"
59 "test_pytest_namer"
60 ];
61
62 pythonImportsCheck = [
63 "approvaltests.approvals"
64 "approvaltests.reporters.generic_diff_reporter_factory"
65 ];
66
67 meta = {
68 description = "Assertion/verification library to aid testing";
69 homepage = "https://github.com/approvals/ApprovalTests.Python";
70 changelog = "https://github.com/approvals/ApprovalTests.Python/releases/tag/${src.tag}";
71 license = lib.licenses.asl20;
72 maintainers = [ ];
73 };
74}