1{ lib
2, stdenv
3, buildPythonPackage
4, chardet
5, colorama
6, fetchFromGitHub
7, netaddr
8, pycurl
9, pyparsing
10, pytest
11, pytestCheckHook
12, pythonOlder
13, setuptools
14, six
15}:
16
17buildPythonPackage rec {
18 pname = "wfuzz";
19 version = "3.1.0";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "xmendez";
26 repo = pname;
27 rev = "v${version}";
28 hash = "sha256-RM6QM/iR00ymg0FBUtaWAtxPHIX4u9U/t5N/UT/T6sc=";
29 };
30
31 propagatedBuildInputs = [
32 chardet
33 pycurl
34 six
35 setuptools
36 pyparsing
37 ] ++ lib.optionals stdenv.hostPlatform.isWindows [
38 colorama
39 ];
40
41 checkInputs = [
42 netaddr
43 pytest
44 pytestCheckHook
45 ];
46
47 preCheck = ''
48 export HOME=$(mktemp -d)
49 '';
50
51 disabledTestPaths = [
52 # The tests are requiring a local web server
53 "tests/test_acceptance.py"
54 "tests/acceptance/test_saved_filter.py"
55 ];
56
57 pythonImportsCheck = [
58 "wfuzz"
59 ];
60
61 meta = with lib; {
62 description = "Web content fuzzer to facilitate web applications assessments";
63 longDescription = ''
64 Wfuzz provides a framework to automate web applications security assessments
65 and could help you to secure your web applications by finding and exploiting
66 web application vulnerabilities.
67 '';
68 homepage = "https://wfuzz.readthedocs.io";
69 license = with licenses; [ gpl2Only ];
70 maintainers = with maintainers; [ pamplemousse ];
71 };
72}