diff options
Diffstat (limited to 'pkgs/development/python-modules/selenium/default.nix')
-rw-r--r-- | pkgs/development/python-modules/selenium/default.nix | 65 |
1 files changed, 30 insertions, 35 deletions
diff --git a/pkgs/development/python-modules/selenium/default.nix b/pkgs/development/python-modules/selenium/default.nix index e606819159c02..a1db98deeb755 100644 --- a/pkgs/development/python-modules/selenium/default.nix +++ b/pkgs/development/python-modules/selenium/default.nix @@ -1,59 +1,54 @@ { lib -, stdenv -, fetchPypi , fetchFromGitHub , buildPythonPackage , geckodriver +, pytestCheckHook +, pythonOlder +, trio +, trio-websocket , urllib3 -, xorg , nixosTests }: -let - # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some - # absolute paths. Replaced by relative path so it is found when used in nix. - x_ignore_nofocus = - fetchFromGitHub { - owner = "SeleniumHQ"; - repo = "selenium"; - rev = "selenium-3.6.0"; - sha256 = "13wf4hx4i7nhl4s8xkziwxl0km1j873syrj4amragj6mpip2wn8v"; - }; -in - buildPythonPackage rec { pname = "selenium"; - version = "3.141.0"; - - src = fetchPypi { - inherit pname version; - sha256 = "039hf9knvl4s3hp21bzwsp1g5ri9gxsh504dp48lc6nr1av35byy"; + version = "4.2.0"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "SeleniumHQ"; + repo = "selenium"; + rev = "selenium-${version}"; # check if there is a newer tag with -python suffix + sha256 = "sha256-KhBCMsWGRD7hJqumA1+K8AVhJ7hq26XkEa1QbgY0Q0w="; }; - buildInputs = [ xorg.libX11 ]; + postPatch = '' + substituteInPlace py/selenium/webdriver/firefox/service.py \ + --replace 'DEFAULT_EXECUTABLE_PATH = "geckodriver"' 'DEFAULT_EXECUTABLE_PATH = "${geckodriver}/bin/geckodriver"' + ''; + + preConfigure = '' + cd py + ''; propagatedBuildInputs = [ - geckodriver urllib3 + trio + trio-websocket + urllib3 + ] ++ urllib3.optional-dependencies.secure + ++ urllib3.optional-dependencies.socks; + + checkInputs = [ + pytestCheckHook ]; - postPatch = lib.optionalString stdenv.isLinux '' - cp "${x_ignore_nofocus}/cpp/linux-specific/"* . - substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${lib.getLib xorg.libX11}/lib/libX11.so.6" - cc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o - cc -shared \ - -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \ - -o x_ignore_nofocus.so \ - x_ignore_nofocus.o - cp -v x_ignore_nofocus.so selenium/webdriver/firefox/${if stdenv.is64bit then "amd64" else "x86"}/ - ''; - passthru.tests = { testing-vaultwarden = nixosTests.vaultwarden; }; meta = with lib; { - description = "The selenium package is used to automate web browser interaction from Python"; - homepage = "http://www.seleniumhq.org"; + description = "Bindings for Selenium WebDriver"; + homepage = "https://selenium.dev/"; license = licenses.asl20; maintainers = with maintainers; [ jraygauthier ]; }; |