1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 setuptools,
6 zope-interface,
7 zope-schema,
8 zope-cachedescriptors,
9 pytz,
10 webtest,
11 beautifulsoup4,
12 soupsieve,
13 wsgiproxy2,
14 six,
15 mock,
16 zope-testing,
17 zope-testrunner,
18 python,
19}:
20
21buildPythonPackage rec {
22 pname = "zope-testbrowser";
23 version = "6.0";
24
25 format = "setuptools";
26
27 src = fetchPypi {
28 pname = "zope.testbrowser";
29 inherit version;
30 sha256 = "sha256-RLd6XpA3q+3DZHai6j3H6XTWE85Sk913zAL4iO4x+ho=";
31 };
32
33 postPatch = ''
34 # remove test that requires network access
35 substituteInPlace src/zope/testbrowser/tests/test_doctests.py \
36 --replace "suite.addTests(wire)" ""
37 '';
38
39 propagatedBuildInputs = [
40 setuptools
41 zope-interface
42 zope-schema
43 zope-cachedescriptors
44 pytz
45 webtest
46 beautifulsoup4
47 soupsieve
48 wsgiproxy2
49 six
50 ];
51
52 nativeCheckInputs = [
53 mock
54 zope-testing
55 zope-testrunner
56 ];
57
58 checkPhase = ''
59 ${python.interpreter} -m zope.testrunner --test-path=src
60 '';
61
62 pythonImportsCheck = [
63 "zope.testbrowser"
64 "zope.testbrowser.browser"
65 "zope.testbrowser.interfaces"
66 "zope.testbrowser.testing"
67 "zope.testbrowser.wsgi"
68 ];
69
70 meta = {
71 description = "Programmable browser for functional black-box tests";
72 homepage = "https://github.com/zopefoundation/zope.testbrowser";
73 license = lib.licenses.zpl21;
74 maintainers = with lib.maintainers; [ dotlambda ];
75 };
76}