diff --git a/pkgs/development/python-modules/splinter/default.nix b/pkgs/development/python-modules/splinter/default.nix index a368d1a81131..2b4cef2e30f8 100644 --- a/pkgs/development/python-modules/splinter/default.nix +++ b/pkgs/development/python-modules/splinter/default.nix @@ -1,20 +1,29 @@ { lib , buildPythonPackage +, isPy27 , fetchFromGitHub , selenium +, cssselect +, django , flask +, lxml , pytestCheckHook +, zope-testbrowser }: buildPythonPackage rec { pname = "splinter"; - version = "0.17.0"; + version = "0.18.0"; + + disabled = isPy27; + + format = "setuptools"; src = fetchFromGitHub { owner = "cobrateam"; repo = "splinter"; rev = version; - hash = "sha256-7QhFz/qBh2ECyeyvjCyqOYy/YrUK7KVX13VC/gem5BQ="; + hash = "sha256-kJ5S/fBesaxTbxCQ0yBR30+CfCV6U5jgbfDZA7eF6ac="; }; propagatedBuildInputs = [ @@ -22,27 +31,35 @@ buildPythonPackage rec { ]; checkInputs = [ + cssselect + django flask + lxml pytestCheckHook + zope-testbrowser ]; disabledTests = [ # driver is present and fails with a different error during loading + "test_browser_local_driver_not_present" "test_local_driver_not_present" ]; disabledTestPaths = [ "samples" - # TODO: requires optional dependencies which should be defined in passthru.optional-dependencies.$name - "tests/test_djangoclient.py" - "tests/test_flaskclient.py" + # We run neither Chromium nor Firefox nor ... + "tests/test_async_finder.py" + "tests/test_html_snapshot.py" + "tests/test_iframes.py" + "tests/test_mouse_interaction.py" "tests/test_popups.py" + "tests/test_screenshot.py" + "tests/test_shadow_root.py" "tests/test_webdriver.py" "tests/test_webdriver_chrome.py" "tests/test_webdriver_edge_chromium.py" "tests/test_webdriver_firefox.py" "tests/test_webdriver_remote.py" - "tests/test_zopetestbrowser.py" ]; pythonImportsCheck = [ "splinter" ]; diff --git a/pkgs/development/python-modules/zope-cachedescriptors/default.nix b/pkgs/development/python-modules/zope-cachedescriptors/default.nix new file mode 100644 index 000000000000..4cbf9386b6cb --- /dev/null +++ b/pkgs/development/python-modules/zope-cachedescriptors/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchPypi +, setuptools +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "zope-cachedescriptors"; + version = "4.3.1"; + + format = "setuptools"; + + src = fetchPypi { + pname = "zope.cachedescriptors"; + inherit version; + sha256 = "1f4d1a702f2ea3d177a1ffb404235551bb85560100ec88e6c98691734b1d194a"; + }; + + propagatedBuildInputs = [ + setuptools + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pytestFlagsArray = [ + "src/zope/cachedescriptors/tests.py" + ]; + + pythonImportsCheck = [ "zope.cachedescriptors" ]; + + meta = { + description = "Method and property caching decorators"; + homepage = "https://github.com/zopefoundation/zope.cachedescriptors"; + license = lib.licenses.zpl21; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/zope-testbrowser/default.nix b/pkgs/development/python-modules/zope-testbrowser/default.nix new file mode 100644 index 000000000000..31de6e28f2ee --- /dev/null +++ b/pkgs/development/python-modules/zope-testbrowser/default.nix @@ -0,0 +1,75 @@ +{ lib +, buildPythonPackage +, fetchPypi +, setuptools +, zope_interface +, zope_schema +, zope-cachedescriptors +, pytz +, webtest +, beautifulsoup4 +, soupsieve +, wsgiproxy2 +, six +, mock +, zope_testing +, zope_testrunner +, python +}: + +buildPythonPackage rec { + pname = "zope-testbrowser"; + version = "5.6.1"; + + format = "setuptools"; + + src = fetchPypi { + pname = "zope.testbrowser"; + inherit version; + sha256 = "035bf63d9f7244e885786c3327448a7d9fff521dba596429698b8474961b05e7"; + }; + + postPatch = '' + # remove test that requires network access + substituteInPlace src/zope/testbrowser/tests/test_doctests.py \ + --replace "suite.addTests(wire)" "" + ''; + + propagatedBuildInputs = [ + setuptools + zope_interface + zope_schema + zope-cachedescriptors + pytz + webtest + beautifulsoup4 + soupsieve + wsgiproxy2 + six + ]; + + checkInputs = [ + mock + zope_testing + zope_testrunner + ]; + + checkPhase = '' + ${python.interpreter} -m zope.testrunner --test-path=src + ''; + + pythonImportsCheck = [ + "zope.testbrowser" + "zope.testbrowser.browser" + "zope.testbrowser.interfaces" + "zope.testbrowser.testing" + "zope.testbrowser.wsgi" + ]; + + meta = { + description = "Programmable browser for functional black-box tests"; + homepage = "https://github.com/zopefoundation/zope.testbrowser"; + license = lib.licenses.zpl21; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index beca93e79715..7fc930c6f764 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11637,6 +11637,8 @@ in { zope_broken = callPackage ../development/python-modules/zope_broken { }; + zope-cachedescriptors = callPackage ../development/python-modules/zope-cachedescriptors { }; + zope_component = callPackage ../development/python-modules/zope_component { }; zope_configuration = callPackage ../development/python-modules/zope_configuration { }; @@ -11673,6 +11675,8 @@ in { zope_size = callPackage ../development/python-modules/zope_size { }; + zope-testbrowser = callPackage ../development/python-modules/zope-testbrowser { }; + zope_testing = callPackage ../development/python-modules/zope_testing { }; zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };