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