test(e2e): add venv + playwright deps and robust Matomo API auth flow
- Add optional dependency group "e2e" with Playwright in pyproject.toml - Teach Makefile to create/use local .venv, install e2e deps, and fetch Chromium - Wait for Matomo HTTP response (any status) before running bootstrap - Switch API calls to /index.php and add HttpClient.get() - Use UsersManager.getTokenAuth (md5Password) to obtain token_auth for privileged calls - Make web installer more resilient to HTTPError/500 and locale/button variations - Update E2E test to pass admin email and call API via /index.php https://chatgpt.com/share/694a70b0-e520-800f-a3e4-eaf5e96530bd
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import argparse
|
||||
import os
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
@@ -6,12 +7,46 @@ def parse_args() -> argparse.Namespace:
|
||||
description="Headless bootstrap tool for Matomo (installation + API token provisioning)"
|
||||
)
|
||||
|
||||
p.add_argument("--base-url", required=True, help="Matomo base URL")
|
||||
p.add_argument("--admin-user", required=True)
|
||||
p.add_argument("--admin-password", required=True)
|
||||
p.add_argument("--admin-email", required=True)
|
||||
p.add_argument("--token-description", default="matomo-bootstrap")
|
||||
p.add_argument("--timeout", type=int, default=20)
|
||||
p.add_argument(
|
||||
"--base-url",
|
||||
default=os.environ.get("MATOMO_URL"),
|
||||
help="Matomo base URL (or MATOMO_URL env)",
|
||||
)
|
||||
p.add_argument(
|
||||
"--admin-user",
|
||||
default=os.environ.get("MATOMO_ADMIN_USER"),
|
||||
help="Admin login (or MATOMO_ADMIN_USER env)",
|
||||
)
|
||||
p.add_argument(
|
||||
"--admin-password",
|
||||
default=os.environ.get("MATOMO_ADMIN_PASSWORD"),
|
||||
help="Admin password (or MATOMO_ADMIN_PASSWORD env)",
|
||||
)
|
||||
p.add_argument(
|
||||
"--admin-email",
|
||||
default=os.environ.get("MATOMO_ADMIN_EMAIL"),
|
||||
help="Admin email (or MATOMO_ADMIN_EMAIL env)",
|
||||
)
|
||||
p.add_argument(
|
||||
"--token-description",
|
||||
default=os.environ.get("MATOMO_TOKEN_DESCRIPTION", "matomo-bootstrap"),
|
||||
)
|
||||
p.add_argument("--timeout", type=int, default=int(os.environ.get("MATOMO_TIMEOUT", "20")))
|
||||
p.add_argument("--debug", action="store_true")
|
||||
|
||||
return p.parse_args()
|
||||
args = p.parse_args()
|
||||
|
||||
missing = []
|
||||
if not args.base_url:
|
||||
missing.append("--base-url (or MATOMO_URL)")
|
||||
if not args.admin_user:
|
||||
missing.append("--admin-user (or MATOMO_ADMIN_USER)")
|
||||
if not args.admin_password:
|
||||
missing.append("--admin-password (or MATOMO_ADMIN_PASSWORD)")
|
||||
if not args.admin_email:
|
||||
missing.append("--admin-email (or MATOMO_ADMIN_EMAIL)")
|
||||
|
||||
if missing:
|
||||
p.error("missing required values: " + ", ".join(missing))
|
||||
|
||||
return args
|
||||
|
||||
Reference in New Issue
Block a user