1{ lib
2, buildPythonPackage
3, cryptography
4, dnspython
5, expiringdict
6, fetchFromGitHub
7, hatchling
8, publicsuffixlist
9, pyleri
10, iana-etc
11, pytestCheckHook
12, pythonOlder
13, requests
14, timeout-decorator
15}:
16
17buildPythonPackage rec {
18 pname = "checkdmarc";
19 version = "4.8.4";
20 format = "pyproject";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "domainaware";
26 repo = "checkdmarc";
27 rev = "refs/tags/${version}";
28 hash = "sha256-NNB5dYQzzdNapjP4mtpCW08BzfZ+FFRESUtpxCOzrdk=";
29 };
30
31 nativeBuildInputs = [
32 hatchling
33 ];
34
35 propagatedBuildInputs = [
36 cryptography
37 dnspython
38 expiringdict
39 publicsuffixlist
40 pyleri
41 requests
42 timeout-decorator
43 ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 ];
48
49 pythonImportsCheck = [
50 "checkdmarc"
51 ];
52
53 pytestFlagsArray = [
54 "tests.py"
55 ];
56
57 disabledTests = [
58 # Tests require network access
59 "testDMARCPctLessThan100Warning"
60 "testSPFMissingARecord"
61 "testSPFMissingMXRecord"
62 "testSplitSPFRecord"
63 "testTooManySPFDNSLookups"
64 "testTooManySPFVoidDNSLookups"
65 ];
66
67 meta = with lib; {
68 description = "A parser for SPF and DMARC DNS records";
69 homepage = "https://github.com/domainaware/checkdmarc";
70 changelog = "https://github.com/domainaware/checkdmarc/blob/${version}/CHANGELOG.md";
71 license = licenses.asl20;
72 maintainers = with maintainers; [ fab ];
73 };
74}
75