| .. |
|
__init__.py
|
Add comprehensive automated testing infrastructure
|
2025-12-11 10:03:40 +01:00 |
|
test_advanced_auth_api.py
|
feat: Two-Factor Authentication (TOTP, Email OTP) and OIDC/SSO – full implementation with admin UI (#933)
|
2026-04-13 13:24:28 +02:00 |
|
test_ams_history_api.py
|
- Add interactive API Browser to Settings > API Keys
|
2026-01-02 15:00:21 +01:00 |
|
test_ams_labels_api.py
|
Add tests, docs, and lint fix for AMS Info Card feature (#570)
|
2026-03-05 08:46:39 +01:00 |
|
test_api_key_cloud_access.py
|
fix(api-keys): slice + slicer-presets routes resolve cloud token via key owner (#1182 follow-up)
|
2026-05-02 08:10:47 +02:00 |
|
test_archive_purge_api.py
|
fix(archives): bulk and auto purge now honour the soft / hard delete choice from #1343 (#1390 follow-up)
|
2026-05-17 10:54:28 +02:00 |
|
test_archives_api.py
|
fix(projects): drop deleted prints from their project, and refresh the view (#2731)
|
2026-07-31 14:50:25 +02:00 |
|
test_auth_api.py
|
fix(auth): expose /api/v1/system/appliance through the auth middleware allowlist
|
2026-06-25 15:19:28 +02:00 |
|
test_auth_apikey_rbac.py
|
fix(auth): let API keys manage projects via new can_manage_projects scope (#1893)
|
2026-07-05 09:58:16 +02:00 |
|
test_available_filaments.py
|
Show filament subtypes in all mapping dropdowns (#624)
|
2026-03-06 08:35:06 +01:00 |
|
test_background_dispatch_api.py
|
feat: Unify print dispatch through the scheduler (#1625)
|
2026-06-26 12:31:48 +02:00 |
|
test_camera_api.py
|
fix(camera): release DB connection before streaming, not after (#2572)
|
2026-07-16 08:38:42 +02:00 |
|
test_camwall_api.py
|
feat(camwall): serve the Cam Wall at /camwall, and on a token-authenticated kiosk
|
2026-07-11 13:38:15 +02:00 |
|
test_client_ip.py
|
feat: Two-Factor Authentication (TOTP, Email OTP) and OIDC/SSO – full implementation with admin UI (#933)
|
2026-04-13 13:24:28 +02:00 |
|
test_cloud_auth.py
|
fix(cloud): complete the CSRF handshake on Bambu Cloud TOTP sign-in (#2696)
|
2026-07-28 15:05:28 +02:00 |
|
test_cloud_token_auth_migration.py
|
fix(cloud): log expected preset misses at DEBUG, keep real faults at WARNING
|
2026-07-10 08:24:20 +02:00 |
|
test_color_catalog_extras.py
|
fix(queue): extend Charcoal-style label fix to Specific-Printer panel (#1718 round 3)
|
2026-06-11 14:49:52 +02:00 |
|
test_color_map_api.py
|
refactor(colors): color_catalog is the single source of truth (#857)
|
2026-04-11 12:10:45 +02:00 |
|
test_cost_statistics.py
|
fix(cost): top-up untracked filament at default rate so multi-color
|
2026-05-15 15:43:37 +02:00 |
|
test_design_settings_plates.py
|
feat(slicer): keep the designer's print settings when re-slicing for another printer (#2622)
|
2026-07-28 14:49:50 +02:00 |
|
test_discovery_api.py
|
Auto-detect subnet for printer discovery
|
2026-02-08 12:17:20 +01:00 |
|
test_drying_screen_only.py
|
fix(drying): P1 AMS drying is screen-only — stop offering it (#2533)
|
2026-07-11 09:33:52 +02:00 |
|
test_endpoint_auth.py
|
refactor(api): rename /filaments/ to /filament-catalog/ for clarity (#427)
|
2026-02-18 11:58:17 +01:00 |
|
test_external_folders_api.py
|
fix(library): sort File Manager by real filesystem mtime, recursively (#2680)
|
2026-07-27 11:01:43 +02:00 |
|
test_external_links_api.py
|
- Add interactive API Browser to Settings > API Keys
|
2026-01-02 15:00:21 +01:00 |
|
test_filaments_api.py
|
refactor(api): rename /filaments/ to /filament-catalog/ for clarity (#427)
|
2026-02-18 11:58:17 +01:00 |
|
test_gcode_viewer.py
|
fix(docker): copy gcode_viewer assets into the production image (issue #1218)
|
2026-05-06 14:23:39 +02:00 |
|
test_github_backup_api.py
|
security(github-backup): refuse to save against a non-private repository
|
2026-05-17 15:30:05 +02:00 |
|
test_groups_api.py
|
feat(auth): permission-delegated Settings + Group editor routes; fix group-edit cache stale-read (#1083)
|
2026-04-22 19:10:18 +02:00 |
|
test_inventory_assign.py
|
fix(inventory): broadcast assignment change when auto-unlink clears a stale slot (#2575)
|
2026-07-17 07:26:24 +02:00 |
|
test_inventory_bulk.py
|
feat(inventory): batch / mass edit on the Filament tab (#1795)
|
2026-06-23 11:34:15 +02:00 |
|
test_inventory_csv.py
|
feat(inventory): CSV import/export for the inventory page (#1576) (#1659)
|
2026-06-08 09:30:16 +02:00 |
|
test_inventory_from_slot_no_tag.py
|
fix(inventory): stop popping the unknown-tag modal for slots with no RFID
|
2026-06-25 09:57:15 +02:00 |
|
test_labels.py
|
feat(labels): scannable QR on 203 dpi thermal printers + monochrome mode (#1870)
|
2026-07-07 10:31:19 +02:00 |
|
test_ldap_group_sync.py
|
fix(auth): preserve manually-assigned groups across LDAP logins (#1292)
|
2026-05-12 16:12:58 +02:00 |
|
test_ldap_provision.py
|
chore(tests): allowlist GitGuardian-flagged test fixtures in test_ldap_provision
|
2026-05-15 12:15:39 +02:00 |
|
test_library_api.py
|
fix(auth): API keys with Manage Library can curate library files (#1832)
|
2026-06-27 09:47:35 +02:00 |
|
test_library_slice_api.py
|
fix(slicer): bound slices by silence, not by total slicing time (#2730)
|
2026-07-31 15:14:01 +02:00 |
|
test_library_tags_api.py
|
feat(file-manager): user-authored tags for cross-cutting filtering (#1268)
|
2026-06-22 12:27:58 +02:00 |
|
test_library_trash_api.py
|
Tool: Bandit B108
|
2026-05-11 13:30:27 +02:00 |
|
test_local_login_gate.py
|
fix(oidc): strip the required BAMBUDDY_OIDC_* values and register the local-login bypass
|
2026-08-01 11:37:01 +02:00 |
|
test_locations_api.py
|
feat(inventory): structured storage locations catalog (#1505)
|
2026-06-17 11:33:23 +02:00 |
|
test_long_lived_tokens_api.py
|
feat(#1108): long-lived camera-stream tokens + fix(#1089) audit-pass tweaks
|
2026-04-25 10:44:37 +02:00 |
|
test_maintenance_api.py
|
fix(maintenance): #1596 persist wiki_url on Custom Type create + correct
|
2026-06-02 14:58:10 +02:00 |
|
test_makerworld_apikey_auth.py
|
fix(cloud): stop reporting an expired Bambu Cloud sign-in as connected (issue #2562)
|
2026-07-14 11:29:56 +02:00 |
|
test_metrics_api.py
|
Add Prometheus metrics endpoint for external monitoring (#161)
|
2026-01-27 16:49:28 +01:00 |
|
test_mfa_api.py
|
fix(oidc): #1569 populate User.email from standard 'email' claim when email_claim is preferred_username
|
2026-06-02 10:23:21 +02:00 |
|
test_notifications_api.py
|
Add notification for no spool assigned for active trays, improve usage tracker logic in edge cases (#789)
|
2026-03-24 11:31:32 +01:00 |
|
test_obico_api.py
|
feat(printers): show AI failure detection state on printer cards (#1546)
|
2026-07-28 11:37:36 +02:00 |
|
test_oidc_env_apply.py
|
fix(oidc): reject an unrecognized boolean instead of guessing
|
2026-08-01 09:17:33 +00:00 |
|
test_oidc_env_lock.py
|
feat(oidc): refuse API writes to the env-managed provider
|
2026-07-28 21:05:29 +00:00 |
|
test_oidc_env_startup.py
|
feat(oidc): apply the env provider during startup
|
2026-07-28 21:05:29 +00:00 |
|
test_oidc_icon_api.py
|
Post work PR #1333
|
2026-05-15 08:57:03 +02:00 |
|
test_oidc_icon_blob_roundtrip.py
|
fix(backup): preserve NOT NULL/DEFAULT/FK/UNIQUE in Postgres→SQLite backup (#2526)
|
2026-07-09 09:02:34 +02:00 |
|
test_oidc_icon_deferred_load.py
|
feat(auth): proxy OIDC provider icons server-side (#1333) (#1342)
|
2026-05-15 08:50:37 +02:00 |
|
test_oidc_relogin.py
|
fix(auth): cleanup orphan OIDC/MFA rows when user is deleted (#1285) (#1295)
|
2026-05-13 13:23:21 +02:00 |
|
test_orca_cloud_device.py
|
feat(orca-cloud): pair via RFC 8628 device flow, replacing the paste-based sign-in
|
2026-07-17 08:16:35 +02:00 |
|
test_overlay_status_api.py
|
fix(overlay): authenticate the OBS overlay with a token when login is enabled (#2613)
|
2026-07-20 13:04:35 +02:00 |
|
test_ownership_permissions.py
|
feat(library): let users delete empty folders (#1781)
|
2026-07-28 12:05:00 +02:00 |
|
test_pending_upload_display_name.py
|
Tool: Bandit B108
|
2026-05-11 13:30:27 +02:00 |
|
test_pipeline_runs_api.py
|
fix(permissions): self-heal Administrators to ALL_PERMISSIONS on upgrade + Pipelines runs dashboard polish
|
2026-06-28 11:18:18 +02:00 |
|
test_plate_clear_notification.py
|
feat(mqtt): publish the plate-clear gate and add a notification for it (#2525)
|
2026-07-28 13:36:55 +02:00 |
|
test_print_lifecycle.py
|
fix(scheduler): raise plate-clear gate for every terminal status (#1171)
|
2026-05-01 08:13:52 +02:00 |
|
test_print_queue_api.py
|
fix(vp): gate the slicer's AMS pick behind the toggle and scope its badges (#2700)
|
2026-07-31 16:16:39 +02:00 |
|
test_printers_api.py
|
fix(tests): add the new fan fields to the plate-clear status fixture
|
2026-07-29 11:33:09 -05:00 |
|
test_projects_api.py
|
fix(projects): drop deleted prints from their project, and refresh the view (#2731)
|
2026-07-31 14:50:25 +02:00 |
|
test_queue_start_user_attribution.py
|
test(security-fixtures): nosec B104/B108 on new 0.2.4.6 test code
|
2026-06-09 13:32:15 +02:00 |
|
test_read_permission_backfill_migration.py
|
fix(permissions): self-heal Administrators to ALL_PERMISSIONS on upgrade + Pipelines runs dashboard polish
|
2026-06-28 11:18:18 +02:00 |
|
test_security.py
|
fix(security): GHSA-6mf4-q26m-47pv — fail-closed on auth-probe DB errors (CVSS 9.8)
|
2026-05-30 13:49:09 +02:00 |
|
test_security_headers.py
|
fix(csp): nonce-based script-src so Cloudflare-injected scripts pass (#1460 follow-up)
|
2026-05-23 12:28:58 +02:00 |
|
test_session_policy.py
|
feat(auth): admin-configurable session lifetime ceiling (#1706)
|
2026-06-16 12:00:27 +02:00 |
|
test_settings_api.py
|
feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration
|
2026-07-20 17:55:56 +02:00 |
|
test_settings_api_key_scrubbing.py
|
fix(spoolbuddy): lower /update permission to INVENTORY_UPDATE so kiosk's own Settings -> Update button works
|
2026-05-08 14:28:41 +02:00 |
|
test_settings_electricity_price.py
|
fix(api-keys): expose narrowly-scoped "Update electricity price" toggle (#1356)
|
2026-05-15 13:12:41 +02:00 |
|
test_settings_ui_preferences.py
|
feat(humidity): per-filament humidity threshold for auto-drying + alarms (#1605)
|
2026-06-21 11:55:37 +02:00 |
|
test_sjf_scheduling.py
|
chore(tests): suppress B108 on dummy /tmp test fixtures
|
2026-04-19 09:48:10 +02:00 |
|
test_slicer_pipelines_api.py
|
feat(slicer): Slicer Pipelines — save & reuse a preset bundle in one click (#1425 PR A)
|
2026-06-27 13:56:18 +02:00 |
|
test_smart_plugs_api.py
|
Add REST/Webhook smart plug type (#472)
|
2026-04-01 10:06:01 +02:00 |
|
test_sponsor_prompt_api.py
|
feat(sponsor-prompt): in-app toast at earned milestones
|
2026-06-20 15:50:58 +02:00 |
|
test_spool_by_tag_lookup.py
|
feat(inventory): by-tag spool lookup, readable with Manage-Inventory keys (#1663) (#1700)
|
2026-06-22 10:14:31 +02:00 |
|
test_spool_reset_usage.py
|
refactor(inventory): rename /reset-usage to /reset-consumed-counter to match what it actually does (issue #1644)
|
2026-06-05 09:22:05 +02:00 |
|
test_spoolbuddy.py
|
fix(spoolbuddy): route weight sync by inventory mode exclusively (#1530)
|
2026-05-26 10:36:37 +02:00 |
|
test_spoolbuddy_spoolman_nfc.py
|
Feature/spoolman inventory UI (#1241)
|
2026-05-08 11:52:42 +02:00 |
|
test_spoolman_ams_sync.py
|
Feature/spoolman inventory UI (#1241)
|
2026-05-08 11:52:42 +02:00 |
|
test_spoolman_api.py
|
fix(spoolman): decide spool assignability from the slot-assignment ledger, not extra.tag (#1122)
|
2026-05-21 09:33:47 +02:00 |
|
test_spoolman_filament_patch.py
|
Feature/spoolman inventory UI (#1241)
|
2026-05-08 11:52:42 +02:00 |
|
test_spoolman_inventory_api.py
|
feat(inventory): structured storage locations catalog (#1505)
|
2026-06-17 11:33:23 +02:00 |
|
test_spoolman_inventory_bulk.py
|
feat(inventory): batch / mass edit on the Filament tab (#1795)
|
2026-06-23 11:34:15 +02:00 |
|
test_spoolman_k_profiles.py
|
feat(inventory): structured storage locations catalog (#1505)
|
2026-06-17 11:33:23 +02:00 |
|
test_spoolman_slot_assignment_mqtt.py
|
feat(inventory): structured storage locations catalog (#1505)
|
2026-06-17 11:33:23 +02:00 |
|
test_spoolman_slot_assignments.py
|
fix(spool-assignments): union both assignment tables in the missing-spool check + symmetric mode-switch clear (#1473)
|
2026-05-21 09:15:10 +02:00 |
|
test_spoolman_slot_concurrency.py
|
fix(spoolman): clear stale fallback-tag links on assign + link, prefer slot-assignment over tag-link in UI (#1457)
|
2026-05-20 11:00:54 +02:00 |
|
test_spoolman_tracking_slot_fallback.py
|
fix(spoolman): per-print weight tracker falls back to local slot-assignment table for tag-less spools (#1459)
|
2026-05-20 11:16:56 +02:00 |
|
test_static_html_cache_headers.py
|
fix(tests): make SPA cache-header tests work without a built frontend
|
2026-05-05 14:35:08 +02:00 |
|
test_stats_reconciled_duration_2592.py
|
fix(stats): don't bank the disconnect gap as print time on reconnect (#2592)
|
2026-07-18 09:58:21 +02:00 |
|
test_support_api.py
|
feat(system): log-health scanner + Add/Edit-Printer setup pre-flight
|
2026-05-22 16:31:16 +02:00 |
|
test_system_api.py
|
feat(system): NTP-gate state on /api/v1/system/appliance
|
2026-06-22 14:23:30 +02:00 |
|
test_tailscale_api.py
|
feat(virtual-printer): add Tailscale opt-out toggle (closes #701 point 3) (#1070)
|
2026-04-24 09:59:09 +02:00 |
|
test_timelapse_scan_session.py
|
fix(timelapse): poll longer, diff without a clock, delete once archived (#2704)
|
2026-07-29 11:51:30 +02:00 |
|
test_trace_middleware.py
|
feat(observability): trace ID column on every log line + X-Trace-Id header
|
2026-04-26 10:01:17 +02:00 |
|
test_updates_api.py
|
test(updates): isolate _update_status global to fix CI-only flake
|
2026-07-07 12:44:53 +02:00 |
|
test_user_notifications_api.py
|
Post work PR #693
|
2026-03-17 12:24:36 +01:00 |
|
test_users_auth_cleanup.py
|
fix(auth): cleanup orphan OIDC/MFA rows when user is deleted (#1285) (#1295)
|
2026-05-13 13:23:21 +02:00 |
|
test_users_groups_privilege_escalation.py
|
test(users/groups): generate privilege-escalation test password at runtime
|
2026-06-12 13:27:17 +02:00 |
|
test_virtual_printer_api.py
|
feat(gcode-injection): per-VP opt-in auto-print injection toggle (#1516) (#1656)
|
2026-06-19 11:29:07 +02:00 |
|
test_webhook_printer_status.py
|
fix(webhook): #1584 PrinterState dataclass attribute access in status / stop / cancel
|
2026-06-02 12:57:51 +02:00 |
|
test_webhook_start_print.py
|
feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration
|
2026-07-20 17:55:56 +02:00 |