diff --git a/tests/mastodon-garage.nix b/tests/mastodon-garage.nix index c423f861..ed59b75d 100644 --- a/tests/mastodon-garage.nix +++ b/tests/mastodon-garage.nix @@ -78,7 +78,8 @@ rebuildableTest { with subtest("Account creation"): account_creation_output = server.succeed("mastodon-tootctl accounts create test --email test@test.com --confirmed --approve") password_match = re.match('.*New password: ([^\n]*).*', account_creation_output, re.S) - assert password_match is not None + if password_match is None: + raise Exception(f"account creation did not generate a password.\n{account_creation_output}") password = password_match.group(1) with subtest("TTY Login"): @@ -105,26 +106,32 @@ rebuildableTest { with subtest("access image in garage"): image = server.succeed("mc find garage --regex original") image = image.rstrip() - assert image != "" + if image == "": + raise Exception("image posted to mastodon did not get stored in garage") server.succeed(f"mc cat {image} >/garage-image.webp") garage_image_hash = server.succeed("identify -quiet -format '%#' /garage-image.webp") image_hash = server.succeed("identify -quiet -format '%#' $POST_MEDIA") - assert garage_image_hash == image_hash + if garage_image_hash != image_hash: + raise Exception("image stored in garage did not match image uploaded") with subtest("Content security policy allows garage images"): headers = server.succeed("xh -h http://masstodon.localhost:55001/public/local") csp_match = re.match('^Content-Security-Policy: (.*)$', headers, re.M) - assert csp_match is not None + if csp_match is None: + raise Exception("mastodon did not send a content security policy header") csp = csp_match.group(1) # the content security policy should include the garage server garage_csp = re.match(".*web\.garage\.localhost:3902.*", csp) - assert garage_csp is not None + if garage_csp is None: + raise Exception("Mastodon's content security policy does not include garage server. image will not be displayed properly on mastodon.") with subtest("image displays"): server.succeed("selenium-script") server.copy_from_vm("/mastodon-screenshot.png", "") displayed_colors = server.succeed("convert /mastodon-screenshot.png -define histogram:unique-colors=true -format %c histogram:info:") # check that the green image displayed somewhere - re.match(".*#00FF00.*", displayed_colors, re.S) + green_check = re.match(".*#00FF00.*", displayed_colors, re.S) + if green_check is None: + raise Exception("cannot detect the uploaded image on mastodon page.") ''; }