Some fixes to the Pixelfed/Garage test

This commit is contained in:
Nicolas Jeannerod 2024-09-17 12:00:29 +02:00
parent bc47154895
commit 83d8474f17
Signed by: Niols
GPG key ID: 35DB9EC8886E1CB8
2 changed files with 8 additions and 7 deletions

View file

@ -175,7 +175,7 @@ in {
# Give garage time to start up by waiting until somethings speaks HTTP
# behind localhost:3900.
until curl -sio /dev/null http://localhost:3900/; do sleep 1; done
until ${pkgs.curl}/bin/curl -sio /dev/null http://localhost:3900/; do sleep 1; done
# XXX: this is very sensitive to being a single instance
# (doing the bare minimum to get garage up and running)

View file

@ -29,15 +29,16 @@ let
print("Open login page...", file=sys.stderr)
driver.get("http://pixelfed.localhost/login")
print("Enter email...", file=sys.stderr)
driver.find_element(By.ID, "email").send_keys(${email})
driver.find_element(By.ID, "email").send_keys("${email}")
print("Enter password...", file=sys.stderr)
driver.find_element(By.ID, "password").send_keys(${password})
driver.find_element(By.ID, "password").send_keys("${password}")
# FIXME: This is disgusting. Find instead the input type submit in the form
# with action ending in "/login".
print("Click Login button...", file=sys.stderr)
driver.find_element(By.XPATH, "//button[normalize-space()='Login']").click()
'';
## NOTE: `path` must be a valid python string, either a variable or _quoted_.
seleniumTakeScreenshot = path: ''
print("Take screenshot...", file=sys.stderr)
if not driver.save_screenshot(${path}):
@ -172,7 +173,7 @@ pkgs.nixosTest {
server.wait_for_unit("phpfpm-pixelfed.service")
with subtest("Account creation"):
server.succeed(f"pixelfed-manage user:create --name=test --username=test --email=${email} --password=${password} --confirm_email=1")
server.succeed("pixelfed-manage user:create --name=test --username=test --email=${email} --password=${password} --confirm_email=1")
# NOTE: This could in theory give a false positive if pixelfed changes it's
# colorscheme to include pure green. (see same problem in pixelfed-garage.nix).
@ -180,7 +181,7 @@ pkgs.nixosTest {
# there, then post a green image and check that the green pixel IS there.
with subtest("Image displays"):
server.succeed(f"su - selenium -c 'selenium-script-post-picture ${email} ${password}'")
server.succeed("su - selenium -c 'selenium-script-post-picture ${email} ${password}'")
server.copy_from_vm("/home/selenium/screenshot.png", "")
displayed_colors = server.succeed("magick /home/selenium/screenshot.png -define histogram:unique-colors=true -format %c histogram:info:")
# check that the green image displayed somewhere
@ -193,7 +194,7 @@ pkgs.nixosTest {
server.succeed("mc ls garage/pixelfed")
with subtest("access image in garage"):
image = server.succeed("mc find garage --regex '\.png' --ignore '*_thumb.png'")
image = server.succeed("mc find garage --regex '\\.png' --ignore '*_thumb.png'")
image = image.rstrip()
if image == "":
raise Exception("image posted to mastodon did not get stored in garage")
@ -204,7 +205,7 @@ pkgs.nixosTest {
raise Exception("image stored in garage did not match image uploaded")
with subtest("Check that image comes from garage"):
src = server.succeed(f"su - selenium -c 'selenium-script-get-src ${email} ${password}'")
src = server.succeed("su - selenium -c 'selenium-script-get-src ${email} ${password}'")
if not src.startswith("http://pixelfed.web.garage.localhost:3902/"):
raise Exception("image does not come from garage")
'';