Commit a1952a60 authored by WxNzEMof's avatar WxNzEMof
Browse files

python3Packages.playwright: Add PLAYWRIGHT_BROWSERS_PATH to build environment

This allows writing self-contained Python scripts (using a nix-shell
shebang), without requiring a separate shell.nix which sets
PLAYWRIGHT_BROWSERS_PATH to pkgs.playwright-driver.browsers.
parent 682e3b71
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -13,6 +13,9 @@
  setuptools-scm,
  playwright-driver,
  nixosTests,
  writeText,
  runCommand,
  pythonPackages,
  nodejs,
}:

@@ -86,6 +89,16 @@ buildPythonPackage rec {
    pyee
  ];

  setupHook = writeText "setupHook.sh" ''
    addBrowsersPath () {
      if [[ ! -v PLAYWRIGHT_BROWSERS_PATH ]] ; then
        export PLAYWRIGHT_BROWSERS_PATH="${playwright-driver.browsers}"
      fi
    }

    addEnvHooks "$targetOffset" addBrowsersPath
  '';

  postInstall = ''
    ln -s ${driver} $out/${python.sitePackages}/playwright/driver
  '';
@@ -101,6 +114,9 @@ buildPythonPackage rec {
      {
        driver = playwright-driver;
        browsers = playwright-driver.browsers;
        env = runCommand "playwright-env-test" {
          buildInputs = [ pythonPackages.playwright ];
        } "python ${./test.py}";
      }
      // lib.optionalAttrs stdenv.hostPlatform.isLinux {
        inherit (nixosTests) playwright-python;
+10 −0
Original line number Diff line number Diff line
import os
import sys

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    context = browser.new_context()
with open(os.environ["out"], "w") as f:
    f.write("OK")