Clean up Mastodon and Peertube tests

This commit is contained in:
Nicolas Jeannerod 2025-01-27 17:50:30 +01:00
parent 9d27f2d98e
commit e43296dce0
Signed by untrusted user: Niols
GPG key ID: 35DB9EC8886E1CB8
2 changed files with 18 additions and 27 deletions

View file

@ -8,9 +8,6 @@
let let
lib = pkgs.lib; lib = pkgs.lib;
## FIXME: this binding was not used, but maybe we want a side-effect or something?
# rebuildableTest = import ./rebuildableTest.nix pkgs;
testImage = pkgs.copyPathToStore ./green.png; testImage = pkgs.copyPathToStore ./green.png;
testImageColour = "#00FF00"; testImageColour = "#00FF00";

View file

@ -1,4 +1,6 @@
## This file is a basic test of Peertube functionalities. ## This file is a basic test of Peertube functionalities.
##
## NOTE: This test needs Peertube >= 6.3.
{ pkgs, self }: { pkgs, self }:
@ -12,7 +14,11 @@ let
pkgs.writers.writePython3Bin "post-video-in-browser" pkgs.writers.writePython3Bin "post-video-in-browser"
{ {
libraries = with pkgs.python3Packages; [ selenium ]; libraries = with pkgs.python3Packages; [ selenium ];
flakeIgnore = [ "E501" ]; # welcome to the 21st century flakeIgnore = [
"E302"
"E305"
"E501" # welcome to the 21st century
];
} }
'' ''
import sys import sys
@ -24,31 +30,18 @@ let
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoSuchElementException
print("Create and configure driver...", file=sys.stderr)
options = Options() options = Options()
print("########################################", file=sys.stderr)
print("A", file=sys.stderr)
options.add_argument("--headless") options.add_argument("--headless")
print("########################################", file=sys.stderr)
print("B", file=sys.stderr)
service = webdriver.FirefoxService(executable_path="${lib.getExe pkgs.geckodriver}") service = webdriver.FirefoxService(executable_path="${lib.getExe pkgs.geckodriver}")
print("########################################", file=sys.stderr)
print("C", file=sys.stderr)
driver = webdriver.Firefox(options=options, service=service) driver = webdriver.Firefox(options=options, service=service)
print("########################################", file=sys.stderr)
print("D", file=sys.stderr)
driver.set_window_size(4096, 2160) driver.set_window_size(4096, 2160)
print("########################################", file=sys.stderr)
print("E", file=sys.stderr)
driver.implicitly_wait(360) driver.implicitly_wait(360)
print("########################################", file=sys.stderr)
print("F", file=sys.stderr)
wait = WebDriverWait(driver, timeout=360, poll_frequency=10) wait = WebDriverWait(driver, timeout=360, poll_frequency=10)
print("########################################", file=sys.stderr)
############################################################ ############################################################
# Login # Login
def load(driver, page): def load(driver, page):
print(f"Loading page {page}...", file=sys.stderr) print(f"Loading page {page}...", file=sys.stderr)
driver.get(page) driver.get(page)
@ -84,7 +77,6 @@ let
print(f"Done loading page {page}.", file=sys.stderr) print(f"Done loading page {page}.", file=sys.stderr)
############################################################ ############################################################
# Upload video and take a screenshot # Upload video and take a screenshot
@ -132,7 +124,10 @@ let
# text=True, # text=True,
# check=True, # check=True,
# ).stdout # ).stdout
# return bool(re.match(".*#${testVideoColour}.*", displayed_colours, re.S)) # result = bool(re.search("${testVideoColour}", displayed_colours, re.IGNORECASE))
# if not result:
# print(" Could not find the video in the screenshot.", file=sys.stderr)
# return result
# #
# print("Wait until the image shows in screen...", file=sys.stderr) # print("Wait until the image shows in screen...", file=sys.stderr)
# wait.until(detect_image_in_screen) # wait.until(detect_image_in_screen)
@ -187,15 +182,15 @@ pkgs.nixosTest {
expect expect
]; ];
## FIXME: The CI is very slow, so the default timeout of 120s is not
## good enough. We bump it drastically.
systemd.services.postgresql.serviceConfig.TimeoutSec = lib.mkForce 3600;
environment.variables = { environment.variables = {
AWS_ACCESS_KEY_ID = config.services.garage.ensureKeys.peertube.id; AWS_ACCESS_KEY_ID = config.services.garage.ensureKeys.peertube.id;
AWS_SECRET_ACCESS_KEY = config.services.garage.ensureKeys.peertube.secret; AWS_SECRET_ACCESS_KEY = config.services.garage.ensureKeys.peertube.secret;
PT_INITIAL_ROOT_PASSWORD = "testtest"; PT_INITIAL_ROOT_PASSWORD = "testtest";
}; };
## FIXME: The CI is very slow, so the default timeout of 120s is not
## good enough. We bump it drastically.
systemd.services.postgresql.serviceConfig.TimeoutSec = lib.mkForce 3600;
}; };
}; };
@ -206,7 +201,6 @@ pkgs.nixosTest {
# FIXME: I think this trick to look for a password can be replaced by # FIXME: I think this trick to look for a password can be replaced by
# services.peertube.serviceEnvironmentFile.PT_INITIAL_ROOT_PASSWORD=testtest # services.peertube.serviceEnvironmentFile.PT_INITIAL_ROOT_PASSWORD=testtest
with subtest("Peertube starts"): with subtest("Peertube starts"):
server.wait_for_unit("peertube.service") server.wait_for_unit("peertube.service")
root_password = server.succeed("acquire-root-password").rstrip() root_password = server.succeed("acquire-root-password").rstrip()