This website requires JavaScript.
Explore
Help
Register
Sign In
bvandeusen
/
FabledSteward
Watch
1
Star
0
Fork
0
Code
Issues
1
Pull Requests
1
Actions
Packages
Projects
Releases
Wiki
Activity
Files
ae789bc0f1ecde266d0d73cebda1774ec7c2b990
FabledSteward
/
tests
/
core
T
History
bvandeusen
and
Claude Opus 5.5
ae789bc0f1
CI / lint (push)
Successful in 1s
Details
CI / unit (push)
Successful in 1m37s
Details
CI / integration (push)
Successful in 1m47s
Details
CI / publish (push)
Successful in 15s
Details
test(ansible): the swarm prune guard's comment states why, not when (
#6399
)
...
Co-Authored-By: Claude Opus 5.5 <
noreply@anthropic.com
>
2026-10-25 11:30:00 -04:00
..
__init__.py
test(settings): failing tests for public_base_url helper
2026-04-15 20:29:28 -04:00
test_alert_episodes.py
feat(email): delivery you can see: each alert's email in history, outgoing email on Settings -> System (
#5509
)
2026-10-09 16:12:40 -04:00
test_alert_history_row.py
feat(email): delivery you can see: each alert's email in history, outgoing email on Settings -> System (
#5509
)
2026-10-09 16:12:40 -04:00
test_alert_no_data.py
feat(timeline): one record of what happened to the infrastructure, newest first (
#6348
)
2026-10-24 17:03:05 -04:00
test_alert_pickers.py
fix(alerts): a rule's page opens at once; its pickers read the latest values (
#5473
)
2026-10-09 09:24:21 -04:00
test_alert_rule_target.py
fix(alerts): a metric picked on one part doesn't follow you to another (
#5475
)
2026-10-09 09:58:29 -04:00
test_alert_state_machine.py
fix(alerts): acknowledgements hold until resolve; clear after N OK; rule changes reset (
#5059
)
2026-10-06 11:32:17 -04:00
test_alert_test_alert.py
feat(alerts): Send test on a rule checks that its alerts reach someone (
#5466
)
2026-10-09 08:33:32 -04:00
test_alerts_page.py
fix(alerts): a rule's page doesn't wait for its metric preview (
#5485
); Send test up top (
#5486
)
2026-10-09 11:44:19 -04:00
test_alerts_widget.py
test(alerts): the widget test reads the time as |ago writes it (
#5510
)
2026-10-09 16:31:57 -04:00
test_anomalies.py
feat(traefik): a 4xx share is worth a look only once it is a lot of 4xx (
#6105
)
2026-10-19 16:02:17 -04:00
test_ansible_executor.py
fix(ansible): runs end cleanly: output read in chunks, the process group always ended, a cancelled task recorded (
#5156
)
2026-10-06 21:08:30 -04:00
test_ansible_guards.py
feat(ansible): runs stay inside their source; controller-side vars are admin-only (
#5034
)
2026-10-06 10:57:34 -04:00
test_ansible_inventory_page.py
fix(ansible): group names Ansible accepts, and interpreter discovery without the warning (
#5334
)
2026-10-08 00:01:54 -04:00
test_ansible_overlap.py
fix(ansible): a run that waited says so in its stored output, not only live (
#5158
)
2026-10-06 21:29:21 -04:00
test_ansible_playbooks_page.py
feat(ansible): schedules read as sentences, each with its own page (
#5332
)
2026-10-07 23:51:15 -04:00
test_ansible_runs_page.py
feat(ansible): Inventory on one page, add behind dialogs, delete behind the confirm (
#5333
)
2026-10-07 23:57:54 -04:00
test_ansible_schedules_page.py
feat(ansible): schedules read as sentences, each with its own page (
#5332
)
2026-10-07 23:51:15 -04:00
test_audit_actions_worded.py
test(backup): run 9076's three failures (
#5673
,
#5674
)
2026-10-12 07:27:24 -04:00
test_audit_page.py
test(audit): the day-group fixture is a def, not a lambda (ruff E731)
2026-10-08 08:32:40 -04:00
test_backup_check.py
feat(backup): restore a same-version backup in place, history kept, all or nothing (
#5815
)
2026-10-15 10:53:38 -04:00
test_backup_contents.py
feat(backup): a backup holds settings and keys only, for recovery (
#5822
)
2026-10-15 10:39:55 -04:00
test_backup_job.py
feat(backup): daily backups to an S3 bucket, Settings → Backups, and the guide (
#5673
,
#5675
)
2026-10-12 07:23:58 -04:00
test_backup_restore_in_place.py
feat(backup): restore a same-version backup in place, history kept, all or nothing (
#5815
)
2026-10-15 10:53:38 -04:00
test_backup_s3.py
feat(backup): check a backup against what is in place, changing nothing (
#5823
)
2026-10-15 10:48:48 -04:00
test_builtin_source.py
feat(ansible): parameterize docker_prune with prune_target (containers/images/system)
2026-07-19 16:09:39 -04:00
test_capabilities.py
feat(plugins): plugin capability registry + host_agent→Ansible deploy synergy
2026-06-16 11:28:29 -04:00
test_cleanup.py
feat(retention): every growing table is pruned; the audit log has its own window; charts read the raw window from Settings (
#5155
)
2026-10-06 21:05:22 -04:00
test_clock_trouble.py
feat(host_agent): how far each host's clock is from Steward's (milestone 490)
2026-10-08 08:00:33 -04:00
test_crypto.py
feat(ansible): host provisioning via steward managed SSH identity
2026-06-16 17:17:38 -04:00
test_dashboard_defaults.py
feat(widgets): Overview verdict, pending monitors' age, fullest filesystems first (
#5810
)
2026-10-15 10:11:37 -04:00
test_db_readiness.py
fix(db): ride out a brief database outage mid-request; explain it if it persists
2026-08-13 08:23:01 -04:00
test_dns_check.py
feat(monitors): a DNS monitor can name a resolver; the host page puts Ansible above Docker (
#5214
)
2026-10-07 16:14:11 -04:00
test_fd_stability.py
feat(reliability): fd-leak rails — self-watchdog, poll-overlap guard, fd tests
2026-06-24 10:36:53 -04:00
test_formatting.py
feat(alerts): the host's temperature and throughput can drive alert rules (
#5787
)
2026-10-14 22:20:11 -04:00
test_git_askpass.py
feat(secrets): webhook URL and git tokens sealed; run output masks its secrets (
#5037
)
2026-10-06 11:14:37 -04:00
test_git_sources.py
fix(ansible): git sources work in the image and survive a redeploy; pulls time out; alert vars go in a JSON file (
#5157
)
2026-10-06 21:13:14 -04:00
test_holding.py
feat: monitors, UniFi and Traefik keep collecting through a storage stall (
#5995
)
2026-10-17 09:41:14 -04:00
test_host_page.py
feat(host_agent): a group's updates and reboots on a weekly cadence, one host at a time (
#5768
)
2026-10-14 18:59:07 -04:00
test_ids.py
fix(metrics): time-series rows get time-ordered ids, so an insert stops costing a disk read (
#5149
)
2026-10-06 18:58:41 -04:00
test_inventory_gen.py
fix(ansible): group names Ansible accepts, and interpreter discovery without the warning (
#5334
)
2026-10-08 00:01:54 -04:00
test_invites.py
feat(users): invite by email — a one-time link where the invitee makes their own account (milestone 496)
2026-10-08 16:54:44 -04:00
test_logging_setup.py
feat(platform): tini as PID 1, Hypercorn, a log-level setting, the image on CI's Python, an airgapped boot gate before push (
#5159
)
2026-10-06 21:29:21 -04:00
test_macros.py
feat(ui): status_badge, status_dot, stat_tile, empty_state, page_header, icon_button and form classes (
#5094
)
2026-10-06 14:34:21 -04:00
test_mail.py
feat(email): the report, invites, resets and test sends go through the outbox; only it talks SMTP (
#5508
)
2026-10-09 16:05:01 -04:00
test_metric_catalog.py
feat(host_agent): NFS delay per mount, read from /proc/self/mountstats (
#5996
)
2026-10-17 09:46:14 -04:00
test_metrics_retention.py
feat(metrics): roll plugin_metrics up to hourly to bound storage
2026-06-20 21:08:30 -04:00
test_monitor_schedule.py
feat: monitors, UniFi and Traefik keep collecting through a storage stall (
#5995
)
2026-10-17 09:41:14 -04:00
test_monitors_page.py
feat(widgets): Overview verdict, pending monitors' age, fullest filesystems first (
#5810
)
2026-10-15 10:11:37 -04:00
test_monitors.py
feat(monitors): a DNS monitor can name a resolver; the host page puts Ansible above Docker (
#5214
)
2026-10-07 16:14:11 -04:00
test_norm_grading.py
fix(docker): a container's memory is its processes' own; file cache shown on its page (
#6030
)
2026-10-17 21:27:29 -04:00
test_norms.py
feat(norms): Steward learns each metric's normal per hour of day, then week (
#5739
)
2026-10-14 12:48:44 -04:00
test_notifications.py
feat(email): the report, invites, resets and test sends go through the outbox; only it talks SMTP (
#5508
)
2026-10-09 16:05:01 -04:00
test_outbox.py
feat(email): delivery you can see: each alert's email in history, outgoing email on Settings -> System (
#5509
)
2026-10-09 16:12:40 -04:00
test_paging.py
feat(ui): audit log, alert history and Ansible runs load as you scroll (
#5211
)
2026-10-07 00:10:53 -04:00
test_password_resets.py
feat(auth): reset a forgotten password from an emailed link (milestone 497)
2026-10-08 20:17:24 -04:00
test_ping_checks.py
fix(monitors): a ping or TCP check times the network, not Steward (
#6105
)
2026-10-19 15:38:17 -04:00
test_playbook_editor.py
feat(ansible): in-app playbook authoring/editor
2026-06-16 11:39:47 -04:00
test_plugin_hot_load.py
fix(plugins): a plugin that can't start live says why and offers a restart (
#6087
)
2026-10-18 22:56:54 -04:00
test_plugin_nav.py
feat(ui): plugin get_nav() hook → sidebar Infrastructure links (slice 2)
2026-06-19 18:00:12 -04:00
test_plugin_secrets.py
fix(settings): a plugin's password is sealed at rest, and a blank box keeps it (
#5671
)
2026-10-12 07:06:31 -04:00
test_plugin_settings_hygiene.py
fix(plugins): show load-failure reasons on the page the banner links to
2026-08-13 08:36:35 -04:00
test_problems_first.py
feat(hosts): the Hosts list labels its figures and says how long; SLA tab gone; one place to add a host (#5279–#5283)
2026-10-07 17:12:17 -04:00
test_prometheus.py
test(core): the +Inf bucket is its le label, not its value (
#5667
)
2026-10-12 06:58:48 -04:00
test_report_schedule.py
feat(settings): Settings brought into line with the rest of Steward (milestone 493)
2026-10-08 13:28:43 -04:00
test_restoring.py
fix(backup): the safety backup's audit row names who restored (
#5820
)
2026-10-15 11:32:08 -04:00
test_run_scrub.py
feat(secrets): webhook URL and git tokens sealed; run output masks its secrets (
#5037
)
2026-10-06 11:14:37 -04:00
test_scheduler_overlap.py
fix(scheduler): a task marked not to run on startup waits an interval after boot (
#5431
)
2026-10-08 21:52:08 -04:00
test_self_monitor.py
fix(mcp): get_anomaly shows a quick Steward restart, not only a gap over 90 s (
#5862
)
2026-10-15 16:11:27 -04:00
test_settings_default_plugins.py
feat: the host agent is always on; the MCP sees and starts host maintenance (
#5834
)
2026-10-15 12:59:42 -04:00
test_settings_pages.py
feat(settings): Settings brought into line with the rest of Steward (milestone 493)
2026-10-08 13:28:43 -04:00
test_settings_public_base_url.py
chore: rename project Roundtable → Steward
2026-04-25 16:20:14 -04:00
test_status_page.py
feat(monitors): Monitors absorbs the Status page; Status is removed (
#5270
)
2026-10-07 15:36:38 -04:00
test_status.py
feat(docker): the service and container pages say each fact once (
#5310
)
2026-10-07 21:33:25 -04:00
test_steward_health.py
feat(email): delivery you can see: each alert's email in history, outgoing email on Settings -> System (
#5509
)
2026-10-09 16:12:40 -04:00
test_swarm_prune.py
test(ansible): the swarm prune guard's comment states why, not when (
#6399
)
2026-10-25 11:30:00 -04:00
test_tickets.py
feat(tickets): open, comment and resolve tickets from the UI and MCP; known issues on alerts and anomalies (
#6351
,
#6352
)
2026-10-24 22:06:43 -04:00
test_timeline.py
feat(timeline): record a change by hand from the Timeline, a host's page or MCP log_change (
#6350
)
2026-10-24 21:26:02 -04:00
test_undecryptable_secrets.py
feat(crypto): fail loudly on unpersistable secret key; flag undecryptable secrets
2026-06-19 13:52:27 -04:00
test_user_guards.py
feat(settings): Users page — list, add, rename, role, password, disable, delete (
#5336
)
2026-10-08 14:12:56 -04:00
test_viewer_actions.py
feat(ansible): schedules read as sentences, each with its own page (
#5332
)
2026-10-07 23:51:15 -04:00
test_watch.py
fix(alerts): Steward's own outage no longer reads as every agent going silent (
#5441
)
2026-10-08 21:45:47 -04:00