bambuddy/backend/tests/integration
maziggy 57190b10ba Stop offering server-side slicing for STEP files
The Slice action appeared on .step / .stp and the endpoint accepted the job,
but neither slicer can load one from its command line -- both answer
"Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."
So the file was read, converted and uploaded before failing as "The input
model file to the slicer can not be parsed", which reads as a corrupt model
rather than an unsupported format.

The endpoint refuses a STEP up front with a message saying to export it as
STL or 3MF, and the Slice and pipeline buttons no longer appear on one.

Open in Slicer is unchanged and still hands STEP to the desktop application,
which opens it fine -- that was always the working path. isSliceableFilename
(desktop) and isApiSliceableFilename (sidecar) are now separate predicates so
the two cannot drift back together.
2026-08-10 13:09:24 +02:00
..
__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_api_key_owner_authority_1894.py Let API clients resolve user ids to names (#1894) 2026-08-10 11:43:23 +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 Show the Print Log's per-run cost and energy, and let users pick columns (#2636) 2026-08-03 14:53:21 +02:00
test_auth_api.py Let API clients resolve user ids to names (#1894) 2026-08-10 11:43:23 +02:00
test_auth_apikey_rbac.py PR feedback integrated 2026-07-30 21:35:01 +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_finance_api.py implemented pr (minor) feedback 2026-08-06 20:28:16 +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_github_restore_api.py fix(backup): gate every restore category on the permission owning its rows (#2656) 2026-08-05 16:10:04 -04: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_ha_sensors_api_1148.py Show Home Assistant sensors on the printer card (#1148, #448) 2026-08-05 14:26:38 +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 fix: create a personal cost center also on first LDAP login 2026-06-25 20:10:25 +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 Stop offering server-side slicing for STEP files 2026-08-10 13:09:24 +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_library_variants_api.py Add variant-group endpoints and cross-model queue creation (#671, #2570) 2026-08-03 11:10:11 +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 implemented pr (worth fixing) feedback 2026-08-06 20:27:25 +02: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 Add temperatures to the streaming overlay and a URL builder (#1422) 2026-08-04 12:38:36 +02:00
test_ownership_permissions.py Add batch orders with a quantity per plate (#342) 2026-08-04 11:11:36 +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_batch_orders.py Add batch orders with a quantity per plate (#342) 2026-08-04 11:11:36 +02:00
test_print_lifecycle.py bugfix (aborted prints were not billed in specific cases) 2026-07-30 21:51:13 +02:00
test_print_queue_api.py implemented pr (worth fixing) feedback 2026-08-06 20:27:25 +02:00
test_printers_api.py Stop retrying a printer whose FTPS handshake fails, and name the cause (#2780) 2026-08-08 09:00:03 +02:00
test_projects_api.py Nest projects under a master project and roll their figures up (#1264) 2026-08-06 10:00:45 +02:00
test_queue_creation_attribution.py Let API clients resolve user ids to names (#1894) 2026-08-10 11:43:23 +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_queue_variants_api.py Fix cross-model queue items being misrepresented and editable into a broken state (#671) 2026-08-03 12:33:19 +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_scheduler_budget_reservation.py implemented pr (worth fixing) feedback 2026-08-06 20:27:25 +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 Replace the embedded G-code viewer with the slicer's own renderer 2026-08-09 14:10:18 +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 Stop retrying a printer whose FTPS handshake fails, and name the cause (#2780) 2026-08-08 09:00:03 +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 Show the compose directory in the Docker update command (#2664) 2026-08-03 15:12:02 +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_users_slim_1894.py Let API clients resolve user ids to names (#1894) 2026-08-10 11:43:23 +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