0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

playwright-test: Add PLAYWRIGHT_BROWSERS_PATH to build environment (#368391)

This commit is contained in:
Sefa Eyeoglu 2025-02-12 11:07:49 +01:00 committed by GitHub
commit 87b95e65c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 53 additions and 0 deletions

View file

@ -13,6 +13,9 @@
setuptools-scm,
playwright-driver,
nixosTests,
writeText,
runCommand,
pythonPackages,
nodejs,
}:
@ -81,6 +84,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
'';
@ -96,6 +109,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;

View file

@ -0,0 +1,10 @@
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")

View file

@ -12,6 +12,7 @@
makeFontsConf,
makeWrapper,
runCommand,
writeText,
cacert,
}:
let
@ -188,9 +189,27 @@ let
runHook postInstall
'';
setupHook = writeText "setupHook.sh" ''
addBrowsersPath () {
if [[ ! -v PLAYWRIGHT_BROWSERS_PATH ]] ; then
export PLAYWRIGHT_BROWSERS_PATH="${playwright-core.passthru.browsers}"
fi
}
addEnvHooks "$targetOffset" addBrowsersPath
'';
meta = playwright.meta // {
mainProgram = "playwright";
};
passthru.tests.env = runCommand "playwright-core-env-test" {
buildInputs = [
nodejs
playwright-core
playwright-test
];
} "node ${./test.js}";
});
browsers = lib.makeOverridable (

View file

@ -0,0 +1,8 @@
const playwright = require('playwright');
const fs = require('fs');
playwright.chromium.launch()
.then((browser) => {
console.log('OK');
fs.writeFileSync(process.env.out, '');
process.exit(0);
});