Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 fetchFromGitHub, 4 buildPythonPackage, 5 selenium-manager, 6 certifi, 7 pytestCheckHook, 8 pythonOlder, 9 trio, 10 trio-websocket, 11 typing-extensions, 12 websocket-client, 13 urllib3, 14 pytest-trio, 15 nixosTests, 16 stdenv, 17 python, 18}: 19 20buildPythonPackage rec { 21 pname = "selenium"; 22 version = "4.22.0"; 23 format = "setuptools"; 24 25 disabled = pythonOlder "3.7"; 26 27 src = fetchFromGitHub { 28 owner = "SeleniumHQ"; 29 repo = "selenium"; 30 # check if there is a newer tag with or without -python suffix 31 rev = "refs/tags/selenium-${version}"; 32 hash = "sha256-qBuZgI5SSBwxbSBrAT0W/HzzV2JmPL00hPJ6s57QTeg="; 33 }; 34 35 preConfigure = '' 36 cd py 37 ''; 38 39 postInstall = 40 '' 41 DST_PREFIX=$out/${python.sitePackages}/selenium/webdriver/ 42 DST_REMOTE=$DST_PREFIX/remote/ 43 DST_FF=$DST_PREFIX/firefox 44 cp ../rb/lib/selenium/webdriver/atoms/getAttribute.js $DST_REMOTE 45 cp ../rb/lib/selenium/webdriver/atoms/isDisplayed.js $DST_REMOTE 46 cp ../rb/lib/selenium/webdriver/atoms/findElements.js $DST_REMOTE 47 cp ../javascript/cdp-support/mutation-listener.js $DST_REMOTE 48 cp ../third_party/js/selenium/webdriver.json $DST_FF/webdriver_prefs.json 49 '' 50 + lib.optionalString stdenv.isDarwin '' 51 mkdir -p $DST_PREFIX/common/macos 52 ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/macos/ 53 '' 54 + lib.optionalString stdenv.isLinux '' 55 mkdir -p $DST_PREFIX/common/linux/ 56 ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/linux/ 57 ''; 58 59 propagatedBuildInputs = [ 60 certifi 61 trio 62 trio-websocket 63 urllib3 64 typing-extensions 65 websocket-client 66 ] ++ urllib3.optional-dependencies.socks; 67 68 nativeCheckInputs = [ 69 pytestCheckHook 70 pytest-trio 71 ]; 72 73 __darwinAllowLocalNetworking = true; 74 75 passthru.tests = { 76 testing-vaultwarden = nixosTests.vaultwarden; 77 }; 78 79 meta = with lib; { 80 description = "Bindings for Selenium WebDriver"; 81 homepage = "https://selenium.dev/"; 82 license = licenses.asl20; 83 maintainers = with maintainers; [ jraygauthier ]; 84 }; 85}