1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 setuptools, 6 zope-interface, 7 zope-schema, 8 zope-cachedescriptors, 9 pytz, 10 webtest, 11 beautifulsoup4, 12 soupsieve, 13 wsgiproxy2, 14 mock, 15 zope-testing, 16 zope-testrunner, 17 python, 18}: 19 20buildPythonPackage rec { 21 pname = "zope-testbrowser"; 22 version = "7.0.1"; 23 pyproject = true; 24 25 src = fetchFromGitHub { 26 owner = "zopefoundation"; 27 repo = "zope.testbrowser"; 28 tag = version; 29 hash = "sha256-GxSH3JBuQ3B4CeHzr58FEYv0gsTlUhlO/0CCHcTdOfg="; 30 }; 31 32 postPatch = '' 33 # remove test that requires network access 34 substituteInPlace src/zope/testbrowser/tests/test_doctests.py \ 35 --replace-fail "suite.addTests(wire)" "" 36 ''; 37 38 build-system = [ setuptools ]; 39 40 dependencies = [ 41 setuptools 42 zope-interface 43 zope-schema 44 zope-cachedescriptors 45 pytz 46 webtest 47 beautifulsoup4 48 soupsieve 49 wsgiproxy2 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 changelog = "https://github.com/zopefoundation/zope.testbrowser/blob/${src.rev}/CHANGES.rst"; 72 description = "Programmable browser for functional black-box tests"; 73 homepage = "https://github.com/zopefoundation/zope.testbrowser"; 74 license = lib.licenses.zpl21; 75 maintainers = with lib.maintainers; [ dotlambda ]; 76 }; 77}