bambuddy/backend/tests/unit
maziggy 8d3abf414b Stop the Bambu Cloud TOTP tests reaching the network
verify_totp fetches a CSRF token from the bambulab.com web origin before
posting the code (#2696) and returns early when it cannot get one. These
tests patch only post, so the pre-flight GET went out for real: it succeeded
wherever bambulab.com was reachable and returned a tokenless 403 on a CI
runner, where six tests then asserted on a post that never happened.

Stub the handshake for the module. It is covered end to end, no-token path
included, in tests/unit/test_cloud_totp_csrf.py.
2026-08-02 11:45:18 +02:00
..
core fix(asyncio): track strong refs on orphan create_task sites 2026-06-06 10:41:28 +02:00
services Stop the Bambu Cloud TOTP tests reaching the network 2026-08-02 11:45:18 +02:00
utils fix(spoolman): split mid-print usage across AMS backup switch (#1793) 2026-07-01 09:50:30 +02:00
__init__.py Add comprehensive automated testing infrastructure 2025-12-11 10:03:40 +01:00
test_a2l_ams_lite_2619.py fix(vp): relay A2L AMS filament to the slicer instead of blanking every slot 2026-07-29 08:40:42 +02:00
test_accessory_plug_queue_stall_2629.py fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
test_ams_alarm_gating.py feat(ams): gate humidity/temperature alarms on AMS-has-filament (#1619) 2026-06-04 11:30:26 +02:00
test_ams_assignment_lock.py fix(inventory): serialise spool auto-assign per printer to fix Postgres race 2026-04-26 09:40:02 +02:00
test_ams_mapping_unresolved_2589.py fix(filament): don't dispatch an unresolved AMS mapping to the external spool (#2589) 2026-07-18 08:11:44 +02:00
test_ams_tray_tar_parse_2587.py feat(ams): name the expected slot when a paused print hits an AMS runout (#2587) 2026-07-18 13:06:01 +02:00
test_archive_file_path_guard.py Fix archive endpoints crash with "Is a directory" for BambuStudio prints (#475) 2026-02-21 11:35:18 +01:00
test_archive_filtering.py fix(timelapse): poll longer, diff without a clock, delete once archived (#2704) 2026-07-29 11:51:30 +02:00
test_archive_plate_2603.py fix(queue): persist selected plate to the archive; reconcile archive on offline stop (#2603) 2026-07-19 09:29:54 +02:00
test_archive_run_aggregation.py fix(archives): #1608 suppress card time-accuracy badge for multi-run archives 2026-06-03 10:14:57 +02:00
test_assignment_verification_2582.py feat(ams): confirm spool assignments landed instead of fire-and-forget (#2582) 2026-07-21 08:46:02 +02:00
test_asyncio_handlers.py fix(#1113): silence Windows asyncio Proactor cleanup-RST noise 2026-04-27 16:14:31 +02:00
test_auth_fail_closed.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_bambu_mqtt_cfg_parse.py feat(ams-backup): add status badge + toggle, fix prefer-lowest (#1766) 2026-06-20 12:07:20 +02:00
test_bed_jog.py fix(jog): stop disabling firmware endstops; warn that limits aren't enforced (#2579) 2026-07-16 15:21:47 +02:00
test_bug_report.py [Feature] Redesign bug report debug log capture flow 2026-03-20 14:18:24 +01:00
test_bulk_spool_create.py Add bulk spool addition and stock spools 2026-02-21 10:39:18 +01:00
test_camera_ffmpeg_termination.py fix(camera): drain ffmpeg's pipes during teardown (#NNNN) 2026-07-30 10:31:22 +02:00
test_camera_stderr_summary.py fix(camera): capture ffmpeg stderr when an RTSP stream stalls (#1395) 2026-05-22 10:02:41 +02:00
test_camera_stderr_tail.py fix(camera): drain a streaming ffmpeg's stderr continuously (#2707) 2026-07-30 12:52:11 +02:00
test_camera_stream_registry_isolation.py fix(camera): one registry key per stream, not per printer (issue #2707) 2026-07-30 12:35:27 +02:00
test_camera_usb_stream_cleanup.py fix(camera): drain ffmpeg's pipes during teardown (#NNNN) 2026-07-30 10:31:22 +02:00
test_cancellation_cascade_recovery_migration.py fix(queue): cancelled prints no longer block require_previous_success chain (#1667) 2026-06-06 13:40:56 +02:00
test_cancelled_pool_filter.py fix: cancel-safe get_db + drop sqlalchemy.pool cancellation noise 2026-04-27 16:32:10 +02:00
test_capture_pid_tracking.py fix(obico): exclude snapshot capture PIDs from stream cleanup (#172) 2026-04-17 08:38:22 +02:00
test_catalog_bulk_delete.py Add bulk delete for spool and color catalog entries (#646) 2026-03-07 10:13:40 +01:00
test_check_previous_success.py fix(queue): close #1818 — Resume after failure clears the gate 2026-06-25 09:00:57 +02:00
test_cli.py fix(install): make SpoolBuddy kiosk usable on first boot in full-mode install 2026-04-18 08:14:53 +02:00
test_cloud_token_expiry.py fix(cloud): only sign out on Bambu's real token-expiry 401, not any 401 2026-07-21 07:26:19 +02:00
test_cloud_totp_csrf.py fix(cloud): complete the CSRF handshake on Bambu Cloud TOTP sign-in (#2696) 2026-07-28 15:05:28 +02:00
test_code_quality.py fix(test): stop sys.modules-deleting backend.app.main in test_code_quality 2026-05-24 12:51:24 +02:00
test_color_utils.py fix(inventory): fix usage tracking for remapped AMS slots and slicer prints 2026-02-16 15:46:32 +01:00
test_config_env_warnings.py fix(queue): withdraw an expected print when the command never goes out 2026-07-30 16:31:09 +02:00
test_connection_watchdog.py fix(printers): recover MQTT sessions that stopped reconnecting (#2732) 2026-07-31 14:28:17 +02:00
test_cost_tracking.py fix(cost): top-up untracked filament at default rate so multi-color 2026-05-15 15:43:37 +02:00
test_cover_coalescing_2572.py fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool (#2572) 2026-07-18 16:15:09 +02:00
test_db_dialect.py Feature/spoolman inventory UI (#1241) 2026-05-08 11:52:42 +02:00
test_db_pool_and_auth_cache.py fix(db): configurable pool, auth_enabled cache, single-checkout auth (#2572) 2026-07-18 13:48:14 +02:00
test_design_settings.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_diagnostic_snapshot.py ● feat(support): include sanitized connection / VP / log-health diagnostics in support bundle and bug report (#1506 follow-up) 2026-05-24 10:16:30 +02:00
test_dispatch_claim_recovery.py fix(queue): withdraw an expected print when the command never goes out 2026-07-30 16:31:09 +02:00
test_energy_snapshots.py fix(energy): date-range energy in total mode + restart-resilient per-print tracking (#941) 2026-04-11 11:14:54 +02:00
test_expected_print_rollback.py fix(queue): withdraw an expected print when the command never goes out 2026-07-30 16:31:09 +02:00
test_external_camera_live_frame_reuse.py fix(camera): reuse the live view's frame for external-camera captures (#2707) 2026-07-30 13:05:15 +02:00
test_extract_video_last_frame.py fix(photo): source finish photo from forced timelapse + cleanup (#1397) 2026-06-05 13:53:26 +02:00
test_failure_reason_derivation.py fix: cancel = layer shift, stuck "1 problem", and dropped child-logger logs 2026-04-26 14:24:28 +02:00
test_fallback_archive_mqtt_filament.py fix(archives): resolve raw_data wrapper in fallback-archive filament extraction (#1533 follow-up) 2026-05-29 10:55:41 +02:00
test_ffmpeg_rtsp_timeout_flag.py fix(camera): probe ffmpeg for the right RTSP socket-timeout flag (#1504) 2026-05-24 08:49:21 +02:00
test_filament_fields_options.py fix(profiles): add PLA-CF + Bambu CF/GF/specialty variants to filament_type select (#1686) 2026-06-09 07:38:59 +02:00
test_filament_info_single_flight_2572.py fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool (#2572) 2026-07-18 16:15:09 +02:00
test_filename_validation.py fix(dispatch): align SD cleanup with upload path so doubled-extension library rows don't leave ghost prints (#1542) 2026-05-28 08:40:43 +02:00
test_finish_photo_from_timelapse.py fix(camera): rotate every still exactly once, and cover the sources that let ffmpeg write the file 2026-07-31 09:30:06 +02:00
test_finish_photo_moment_sync.py fix(camera): take the finish photo when the print ends, not when its last layer starts (#2547) 2026-07-31 12:55:05 +02:00
test_firmware_versions.py fix(firmware-check): bypass Cloudflare TLS-fingerprint gate via curl_cffi (#1666) 2026-06-06 13:30:13 +02:00
test_force_color_plate_scope_migration.py fix(queue): scope force-colour overrides to the plate the item prints (#2551) 2026-07-13 09:18:17 +02:00
test_gcode_injection.py feat(gcode-injection): per-VP opt-in auto-print injection toggle (#1516) (#1656) 2026-06-19 11:29:07 +02:00
test_get_db_cancel_safety.py fix: cancel-safe get_db + drop sqlalchemy.pool cancellation noise 2026-04-27 16:32:10 +02:00
test_git_providers.py fix(backup): parse subpath-hosted Gitea/Forgejo repository URLs (#2642) 2026-07-27 12:53:43 +02:00
test_github_backup_cloud_profiles.py fix(backup): collect cloud profiles from every connected account (#2717) 2026-07-31 16:59:33 +02:00
test_github_backup_schemas.py feat(backup): Extend Backup to other Git providers (#1160) 2026-05-03 08:12:36 +02:00
test_hms_error_summary.py ● fix(#1111): advance queue item when print fails before reaching RUNNING 2026-04-24 16:02:55 +02:00
test_homeassistant_settings.py Home Assistant: add environment variable configuration support 2026-02-07 19:01:04 +02:00
test_http_utils.py fix(http): RFC 6266-encode Content-Disposition so non-ASCII filenames don't crash response (issue #1245) 2026-05-08 14:06:40 +02:00
test_inventory_remain_endpoint.py feat(ams-backup): add status badge + toggle, fix prefer-lowest (#1766) 2026-06-20 12:07:20 +02:00
test_jti_revoked_session_reuse_2572.py fix(db): configurable pool, auth_enabled cache, single-checkout auth (#2572) 2026-07-18 13:48:14 +02:00
test_launcher_shutdown_config.py test(launcher): skip repo-root launcher checks when files aren't shipped 2026-07-24 11:17:19 +02:00
test_layer_timelapse_expected_archive.py fix(camera): apply camera_rotation to layer-timelapse frames too 2026-07-30 17:34:13 +01:00
test_ldap_migration.py fix(auth): make password_hash nullable on upgraded SQLite installs (#794) 2026-04-11 11:33:49 +02:00
test_library_classify_file_type.py ● fix(library): #1600 thumbnail extraction for external-folder .gcode.3mf 2026-06-02 14:51:08 +02:00
test_library_file_path_guard.py feat: add embedded GCode viewer (#963) 2026-04-22 11:14:42 +02:00
test_library_file_type_backfill_migration.py ● fix(library): #1600 thumbnail extraction for external-folder .gcode.3mf 2026-06-02 14:51:08 +02:00
test_library_print_name.py fix(library): show the filename, not the embedded 3MF Title (#1489) 2026-05-22 10:22:14 +02:00
test_local_backup.py fix(backup): diagnose an unwritable backup path instead of quoting errno 30 (#2544) 2026-07-12 08:44:53 +02:00
test_local_config.py feat(system): NTP-gate state on /api/v1/system/appliance 2026-06-22 14:23:30 +02:00
test_location_migration.py feat(inventory): structured storage locations catalog (#1505) 2026-06-17 11:33:23 +02:00
test_location_service.py feat(inventory): structured storage locations catalog (#1505) 2026-06-17 11:33:23 +02:00
test_log_credential_redaction.py Bound the scheme repetition in the log credential-redaction pattern. As an 2026-08-02 11:17:24 +02:00
test_log_error_detection.py Remove unused imports, variables, and fix minor CodeQL findings 2026-02-06 12:19:17 +01:00
test_logging_filters.py feat(observability): trace ID column on every log line + X-Trace-Id header 2026-04-26 10:01:17 +02:00
test_maintenance_rod_filtering.py [Fix] Remove incorrect "Lubricate Carbon Rods" maintenance task (#755) 2026-03-19 08:40:24 +01:00
test_makerworld_routes.py fix(cloud): stop reporting an expired Bambu Cloud sign-in as connected (issue #2562) 2026-07-14 11:29:56 +02:00
test_makerworld_s3_tls.py fix(cloud): stop reporting an expired Bambu Cloud sign-in as connected (issue #2562) 2026-07-14 11:29:56 +02:00
test_mfa_helpers.py Revert "feat(oidc): Azure Entra ID support — configurable email claim & verification + Remember Me persistent login (#1103)" 2026-04-24 16:48:59 +02:00
test_mqtt_debug_on_change.py fix(queue): upload to printers in parallel, cap wedge retries, make debug logs survive a farm 2026-07-14 10:35:58 +02:00
test_no_fail_open_in_auth.py fix(security): WebSocket auth gate + audit-driven hardening sweep 2026-06-02 10:02:17 +02:00
test_no_hardcoded_secrets.py fix(security): WebSocket auth gate + audit-driven hardening sweep 2026-06-02 10:02:17 +02:00
test_no_unsafe_path_joins.py fix(slicer-presets): #1581 SliceModal refresh + invalidate on local-profile delete/import 2026-06-02 12:42:16 +02:00
test_notification_plate_scope.py fix(notifications): scope completion notification to printed plate on multi-plate 3MFs (#1785) 2026-06-20 08:28:44 +02:00
test_obico_detection.py feat(obico): authenticate to a token-protected ML API (#2733) 2026-07-31 13:39:17 +02:00
test_obico_smoothing.py feat(obico): AI print-failure detection via self-hosted Obico ML API (#172) 2026-04-13 09:54:26 +02:00
test_oidc_env_managed_migration.py feat(oidc): add is_env_managed column to oidc_providers 2026-07-28 21:05:29 +00:00
test_oidc_env_provider.py feat(oidc): add is_env_managed column to oidc_providers 2026-07-28 21:05:29 +00:00
test_oidc_env_reader.py fix(oidc): strip the required BAMBUDDY_OIDC_* values and register the local-login bypass 2026-08-01 11:37:01 +02:00
test_oidc_icon_helpers.py feat(auth): proxy OIDC provider icons server-side (#1333) (#1342) 2026-05-15 08:50:37 +02:00
test_oidc_icon_migration_pg.py feat(auth): proxy OIDC provider icons server-side (#1333) (#1342) 2026-05-15 08:50:37 +02:00
test_oidc_icon_service.py feat(auth): proxy OIDC provider icons server-side (#1333) (#1342) 2026-05-15 08:50:37 +02:00
test_oidc_icon_validation.py feat(auth): proxy OIDC provider icons server-side (#1333) (#1342) 2026-05-15 08:50:37 +02:00
test_opentag3d.py Feature/spoolman inventory UI (#1241) 2026-05-08 11:52:42 +02:00
test_orca_cloud_refresh.py fix(backup): collect cloud profiles from every connected account (#2717) 2026-07-31 16:59:33 +02:00
test_orca_profiles.py Fix AMS slot showing wrong material for "Support for" profiles 2026-03-03 13:34:03 +01:00
test_orphan_auth_cleanup_migration.py feat(auth): SSO autologin + disable local username/password login (#1589) 2026-06-25 14:54:27 +02:00
test_outbound_url_ssrf_guards.py Suppress Bandit B104 false positive in the SSRF guard tests 2026-08-02 11:09:08 +02:00
test_permissions.py Add inventory:view_assignments permission so admins can grant users 2026-03-07 09:17:26 +01:00
test_permissions_stats_filter.py Add per-user statistics filtering (#730) 2026-03-31 12:13:58 +02:00
test_phantom_print_hardening.py fix(queue): prevent duplicate dispatch and stale progress on batch prints 2026-04-22 17:48:53 +02:00
test_plate_clear_mqtt_notification.py fix(tests): add the new fan fields to the plate-clear status fixture 2026-07-29 11:33:09 -05:00
test_plate_object_extraction.py Remove unused imports, variables, and fix minor CodeQL findings 2026-02-06 12:19:17 +01:00
test_plug_datetimes_are_naive_utc.py fix(smart-plugs): read a REST plug's lifetime counter, and derive Today/Yesterday from it (issue #2539) 2026-07-11 14:22:31 +02:00
test_pool_fits_server.py fix(queue): withdraw an expected print when the command never goes out 2026-07-30 16:31:09 +02:00
test_postgres_restore_drop_cascade.py fix(restore): drop tables with CASCADE so orphan FKs can't abort restore 2026-04-29 11:17:43 +02:00
test_print_log.py fix(stats): don't bank the disconnect gap as print time on reconnect (#2592) 2026-07-18 09:58:21 +02:00
test_print_log_backfill_migration.py fix(stats): backfill PrintLogEntry.cost/energy/archive_id for pre-#1378 rows (#1390) 2026-05-17 09:30:02 +02:00
test_print_speed.py [Feature] Add quick print speed control to printer card (#256) 2026-03-18 11:13:27 +01:00
test_print_start_assigns_printer_id_to_vp_archive.py Fix: capture timelapse baseline on expected-archive on_print_start branch (#1403 follow-up) 2026-05-20 08:12:17 +02:00
test_print_start_expected_promotion.py fix(usage): scope 3MF filament tracking to dispatched plate (#1697) 2026-06-09 09:16:36 +02:00
test_printer_manager_status_broadcast.py feat(printers): expose P2S/X2D accessory fans (left aux + exhaust) 2026-07-28 11:16:22 -05:00
test_printer_models.py fix(kprofiles): stop reporting rejected K-profile writes as saved 2026-08-01 10:35:22 +02:00
test_printer_offline_notification.py Fix unawaited coroutine warning in printer offline notification tests 2026-08-02 10:22:26 +02:00
test_printer_schema.py fix(printers): normalize serial numbers + diagnose connect-but-no-reports (#1465) 2026-05-21 08:30:17 +02:00
test_printer_sensor_history.py feat(heater-history): track nozzle / bed / chamber readings + per-tile chart-icon overlay opens history modal 2026-06-20 12:55:24 +02:00
test_project_settings_sentinel_sanitiser.py fix(slicer): strip "-1" inherit sentinels from project_settings.config (#1201) 2026-05-04 10:34:36 +02:00
test_pushover_priority.py fix(notifications): send Pushover retry/expire for Emergency priority (#2586) 2026-07-17 10:02:19 +02:00
test_reconcile_stale_active_prints.py fix(reconcile): don't synthesize aborted PRINT COMPLETE on the bare-connect edge before push_status arrives (#1679) 2026-06-08 08:18:13 +02:00
test_reprint_clears_stale_timelapse.py fix(notifications): reprint-from-archive sent original print's finish photo (#1707) 2026-06-11 09:23:03 +02:00
test_reprint_updates_subtask_id.py fix(notifications): false-positive Print Stopped on reprint after MQTT reconnect (#1807) 2026-06-25 11:07:29 +02:00
test_resolve_expected_tray_2587.py feat(ams): name the expected slot when a paused print hits an AMS runout (#2587) 2026-07-18 13:06:01 +02:00
test_restore_sqlite_wal_safety.py fix(restore): replace shutil.copy2 with SQLite backup API to prevent WAL leftover (#1211, #668) 2026-05-05 16:00:22 +02:00
test_route_auth_coverage.py feat(system): appliance locale defaults endpoint + frontend i18n bootstrap 2026-06-22 14:13:44 +02:00
test_run_filament_helper.py fix(stats): scope per-run filament to the printed plate, not the whole 3MF (#2614) 2026-07-20 11:52:18 +02:00
test_run_filament_plate_scope_2614.py fix(stats): scope per-run filament to the printed plate, not the whole 3MF (#2614) 2026-07-20 11:52:18 +02:00
test_run_with_retry.py Fix ghost jobs from SQLite lock on print completion (#897) 2026-04-07 09:20:58 +02:00
test_runtime_tracking_pause.py fix(maintenance): paused prints no longer accumulate runtime hours (#1521) 2026-05-25 09:04:47 +02:00
test_safe_path.py security: harden path-traversal class across routes + services; fifth CI backstop 2026-06-02 12:12:54 +02:00
test_scheduler_ams_mapping.py fix(scheduler): skip per-nozzle filter under FTS so dispatch feeds the right spool (#2186) 2026-07-07 12:17:46 +02:00
test_scheduler_auto_drying.py fix(drying): don't stop a running AMS dry on an unreliable humidity re-check (#1892) 2026-07-05 09:32:02 +02:00
test_scheduler_backup_gate.py fix(scheduler): skip per-nozzle filter under FTS so dispatch feeds the right spool (#2186) 2026-07-07 12:17:46 +02:00
test_scheduler_busy_defer_2598.py fix(dispatch): don't send start-print to a busy printer; scheduler defers (#2598) 2026-07-18 16:41:15 +02:00
test_scheduler_busy_only.py [Fix] Suppress spurious "waiting for filament" notification when printers are busy (#753) 2026-03-20 11:34:23 +01:00
test_scheduler_cancel_race.py feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration 2026-07-20 17:55:56 +02:00
test_scheduler_cleanup_library.py feat(projects): per-file print progress and complete-sets tracking (#1897) 2026-07-28 12:46:31 +02:00
test_scheduler_clear_plate.py fix(scheduler): default require_plate_clear to False to match schema/UI (#1865) 2026-07-07 10:07:47 +02:00
test_scheduler_concurrent_dispatch.py fix(queue): make upload concurrency a refillable pool, not a per-batch cap (#2602) 2026-07-19 08:34:38 +02:00
test_scheduler_dispatch_hold.py fix(scheduler): post-dispatch hold prevents H2D Pro double-fire (#1157) 2026-04-28 17:19:17 +02:00
test_scheduler_filament_deficit.py fix(queue): persist "Print Anyway" so scheduler stops re-flagging it 2026-06-09 10:43:07 +02:00
test_scheduler_filament_override.py Add filament override for model-based queue assignment (#486) 2026-02-22 16:43:16 +01:00
test_scheduler_force_color_ams_fallback.py fix(scheduler): pin the force-color variant when selecting the AMS slot (#2650) 2026-07-24 13:13:04 +02:00
test_scheduler_inventory_remain.py fix(scheduler): use inventory weight for "Prefer Lowest Filament" sort (#1508) 2026-05-24 09:18:38 +02:00
test_scheduler_model_mismatch.py fix(queue): enforce sliced-model compatibility on cross-model dispatch (#2578) 2026-07-17 06:51:51 +02:00
test_scheduler_nozzle_mismatch.py feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration 2026-07-20 17:55:56 +02:00
test_scheduler_power_plug_pick_2629.py fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
test_scheduler_preheat.py fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool (#2572) 2026-07-18 16:15:09 +02:00
test_scheduler_reassign_race_2615.py fix(queue): claim a queue item before dispatch so it can't be reassigned mid-upload (#2615) 2026-07-20 12:30:39 +02:00
test_scheduler_release_conn_before_ftp_2572.py fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool (#2572) 2026-07-18 16:15:09 +02:00
test_scheduler_watchdog.py fix(printers): surface the printer's own "command verification failed" 2026-07-31 14:14:58 +02:00
test_settings_dedupe_migration.py Post work PR #1070 2026-04-24 13:24:00 +02:00
test_sidebar_settings.py feat: Centralise sidebar ordering and add page visibility options (#1673) 2026-06-17 12:04:57 +02:00
test_slice_process_support_patch.py fix(slicer): preserve PVA-for-support intent across re-slice of source 3MF (#1881) 2026-07-02 11:32:22 +02:00
test_slice_request_bed_type.py feat(slicing): build-plate override in the SliceModal (#1337) 2026-05-14 15:28:41 +02:00
test_slice_request_schema.py remove(slicer): drop bundle import; fix cloud preset type/from for CLI (#1712) 2026-06-12 10:14:06 +02:00
test_slicer_presets.py fix(slicer): classify filament profiles by their real printer scope, not just their name (#2628 follow-up) 2026-07-22 10:44:05 +02:00
test_slicer_settings.py Add configurable slicer preference — Bambu Studio or OrcaSlicer (#313) 2026-02-10 09:38:06 +01:00
test_slicer_stall_timeout.py fix(slicer): bound slices by silence, not by total slicing time (#2730) 2026-07-31 15:14:01 +02:00
test_slot_preset_key.py fix(ams): HT slot shows "Generic" after configuring custom preset (#1053) 2026-04-20 17:32:34 +02:00
test_smart_plug_power_flag_migration_2629.py fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
test_sponsor_prompt_service.py test: silence Bandit B108 on hardcoded /tmp test-fixture paths 2026-06-28 13:52:05 +02:00
test_spool_schemas_colors.py feat(inventory): multi-colour gradients, transparency, visual effects (#1154) 2026-04-29 09:13:33 +02:00
test_spool_schemas_rgba.py feat(#729): per-spool category + low-stock threshold override 2026-04-25 13:24:49 +02:00
test_spool_schemas_storage_location.py fix(inventory): persist storage_location for internal spools (#1291) 2026-05-12 16:02:24 +02:00
test_spoolbuddy_schema_validation.py Feature/spoolman inventory UI (#1241) 2026-05-08 11:52:42 +02:00
test_spoolbuddy_ssh.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_spoolbuddy_system_stats.py Fixed backend/tests/unit/test_spoolbuddy_system_stats.py 2026-03-26 16:35:29 +01:00
test_spoolman_clear_location.py Fix Spoolman location not cleared on auto-sync when spool removed from AMS (#921) 2026-04-09 08:16:54 +02:00
test_spoolman_extra_lock.py Feature/spoolman inventory UI (#1241) 2026-05-08 11:52:42 +02:00
test_spoolman_inventory_helpers.py fix(inventory): "Reset usage to 0" preserves remaining in both modes (#1390) 2026-05-18 08:51:27 +02:00
test_spoolman_inventory_methods.py feat(inventory): structured storage locations catalog (#1505) 2026-06-17 11:33:23 +02:00
test_spoolman_no3mf_remain_fallback.py feat(spoolman): remain%-delta fallback for no-3MF "Untitled" prints (#1820) 2026-06-25 10:46:57 +02:00
test_spoolman_settings_value_coercion.py Security hardening (maziggy/bambuddy-security #7) 2026-07-30 13:52:56 +02:00
test_spoolman_slot_ddl.py fix(spoolman): allow AMS-HT ams_id range in slot-assignment table (#1274) 2026-05-12 08:48:30 +02:00
test_spoolman_stale_tag_cleanup.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.py fix(inventory): record the mapped spool's material, not the sliced type (#2563) 2026-07-15 07:29:16 +02:00
test_ssrf_guard.py Feature/spoolman inventory UI (#1241) 2026-05-08 11:52:42 +02:00
test_subtask_archive_resume.py fix(archive): stop duplicating the job on a backend restart mid-print (#1485) 2026-05-22 09:05:25 +02:00
test_support_bundle_rotated_logs.py fix(queue): upload to printers in parallel, cap wedge retries, make debug logs survive a farm 2026-07-14 10:35:58 +02:00
test_support_helpers.py feat(support): record process memory, threads and children in bundles (#2734) 2026-07-31 15:32:08 +02:00
test_sync_ams_weights.py fix: prevent spool weight corruption, add AMS weight sync, fix extruder_id 2026-02-15 15:47:41 +01:00
test_systemd_backup_paths.py test(launcher): skip repo-root launcher checks when files aren't shipped 2026-07-24 11:17:19 +02:00
test_telegram_forum_topic.py feat(notifications): optional Telegram forum topic via message_thread_id (#1518) 2026-07-29 14:10:38 +02:00
test_temperature_fan_presets.py feat: Update printer card UI for structure and readability (#1661) 2026-06-18 11:46:07 +02:00
test_threemf_tools.py fix(camera): take the finish photo when the print ends, not when its last layer starts (#2547) 2026-07-31 12:55:05 +02:00
test_timelapse_baseline_restart_recovery.py fix(test): snapshot _timelapse_baselines inside the patch context to dodge CI race 2026-05-24 12:30:12 +02:00
test_timelapse_match.py fix(archives): scan_timelapse picked stale video at false offset (#1278) 2026-05-12 09:20:53 +02:00
test_timelapse_scan_2704.py fix(timelapse): poll longer, diff without a clock, delete once archived (#2704) 2026-07-29 11:51:30 +02:00
test_trace.py fix: cancel = layer shift, stuck "1 problem", and dropped child-logger logs 2026-04-26 14:24:28 +02:00
test_upload_progress_bridge.py feat(toast): restore upload-progress toast for scheduler dispatches (#1625 follow-up) 2026-06-27 11:28:00 +02:00
test_url_safety.py feat(auth): proxy OIDC provider icons server-side (#1333) (#1342) 2026-05-15 08:50:37 +02:00
test_usage_tracker.py fix(inventory): record the mapped spool's material, not the sliced type (#2563) 2026-07-15 07:29:16 +02:00
test_use_ams_reconcile_2595.py fix(dispatch): honor a resolved AMS mapping over a stale use_ams=false (#2595) 2026-07-18 13:18:59 +02:00
test_user_notifications.py Post work PR #693 2026-03-17 12:24:36 +01:00
test_user_print_template_rename_migration.py feat(notifications): template-driven finish-photo email embed + user_print_* rename (#1792) 2026-06-22 11:15:39 +02:00
test_vp_access_code_sync_migration.py fix(vp): auto-derive access code from target printer in non-proxy modes 2026-06-05 17:19:16 +02:00
test_vp_certificate_rotation.py fix(virtual-printer): #1558 Send pre-flight + slicer-surface audit bundle 2026-05-30 13:34:10 +02:00
test_vp_delete_cleanup.py fix(virtual-printer): #1558 Send pre-flight + slicer-surface audit bundle 2026-05-30 13:34:10 +02:00
test_vp_ftp_port.py [Fix] Virtual Printer FTP routed to wrong VP with different access codes (#735) 2026-03-18 09:04:31 +01:00
test_vp_ftp_stor.py fix(vp): stop uvloop from silently truncating VP FTP uploads (#1896) 2026-07-05 10:32:13 +02:00
test_vp_mode_rename_migration.py fix(virtual-printer): #1429 net.info[*].ip cache leak + mode wire-value rename 2026-06-02 14:33:20 +02:00
test_vp_mqtt_bridge.py fix(vp): relay A2L AMS filament to the slicer instead of blanking every slot 2026-07-29 08:40:42 +02:00
test_vp_mqtt_server.py fix(vp): evict MQTT clients on drain timeout + tighten TCP keepalive (#1872) 2026-07-02 10:13:01 +02:00
test_vp_tls_ciphers.py fix(virtual-printer): #1610 add Bambu cipher pin to every slicer-facing TLS context 2026-06-03 10:04:37 +02:00
test_vp_wire_dump.py debug(vp): env-flagged command-flow trace for slicer↔printer #1622 round-2 triage 2026-06-11 13:35:20 +02:00
test_ws_broadcast_to_user.py feat(toast): restore upload-progress toast for scheduler dispatches (#1625 follow-up) 2026-06-27 11:28:00 +02:00