Improve Android app UI and controller flows
This commit is contained in:
@@ -0,0 +1,248 @@
|
||||
requirements 未变化,跳过依赖安装。
|
||||
> <仓库根目录>\测试相关资料\如何测试\本机测试环境\.venv\Scripts\python.exe -m pip check
|
||||
No broken requirements found.
|
||||
已清理:<仓库根目录>\测试相关资料\如何测试\本机测试环境\work\pytest
|
||||
> <仓库根目录>\测试相关资料\如何测试\本机测试环境\.venv\Scripts\python.exe -m pytest -q -p no:cacheprovider --basetemp=<仓库根目录>\测试相关资料\如何测试\本机测试环境\work\pytest
|
||||
........................................................................ [ 13%]
|
||||
........................................................................ [ 27%]
|
||||
........................................................................ [ 41%]
|
||||
....................................sssssss.......s..................... [ 55%]
|
||||
........................................................................ [ 69%]
|
||||
.......s................................................................ [ 82%]
|
||||
........................................................................ [ 96%]
|
||||
................. [100%]
|
||||
============================== warnings summary ===============================
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:87
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:87
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:87
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:87
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:87
|
||||
<仓库根目录>\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:87: DeprecationWarning: 'typing.no_type_check_decorator' is deprecated and slated for removal in Python 3.15
|
||||
@no_type_check_decorator
|
||||
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:293: 10 warnings
|
||||
<仓库根目录>\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\dbus_next\service.py:293: DeprecationWarning: 'typing.no_type_check_decorator' is deprecated and slated for removal in Python 3.15
|
||||
@no_type_check_decorator
|
||||
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\fastapi\routing.py:234: 83 warnings
|
||||
tests/test_animations.py: 913 warnings
|
||||
tests/test_api.py: 2075 warnings
|
||||
tests/test_fonts.py: 249 warnings
|
||||
tests/test_frp.py: 332 warnings
|
||||
tests/test_library_order.py: 332 warnings
|
||||
tests/test_media_conversion.py: 830 warnings
|
||||
tests/test_mobile_control.py: 1162 warnings
|
||||
tests/test_ota.py: 249 warnings
|
||||
tests/test_performance_mode.py: 83 warnings
|
||||
tests/test_scene_layers.py: 166 warnings
|
||||
tests/test_templates.py: 664 warnings
|
||||
tests/test_ui_copy_editor.py: 599 warnings
|
||||
tests/test_wifi.py: 249 warnings
|
||||
<仓库根目录>\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\fastapi\routing.py:234: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
|
||||
is_coroutine = asyncio.iscoroutinefunction(dependant.call)
|
||||
|
||||
app\main.py:2049: 1 warning
|
||||
tests/test_animations.py: 11 warnings
|
||||
tests/test_api.py: 25 warnings
|
||||
tests/test_fonts.py: 3 warnings
|
||||
tests/test_frp.py: 4 warnings
|
||||
tests/test_library_order.py: 4 warnings
|
||||
tests/test_media_conversion.py: 10 warnings
|
||||
tests/test_mobile_control.py: 14 warnings
|
||||
tests/test_ota.py: 3 warnings
|
||||
tests/test_performance_mode.py: 1 warning
|
||||
tests/test_scene_layers.py: 2 warnings
|
||||
tests/test_templates.py: 8 warnings
|
||||
tests/test_ui_copy_editor.py: 7 warnings
|
||||
tests/test_wifi.py: 3 warnings
|
||||
<仓库根目录>\核桃派软件源代码\app\main.py:2049: DeprecationWarning:
|
||||
on_event is deprecated, use lifespan event handlers instead.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
|
||||
|
||||
@app.on_event("startup")
|
||||
|
||||
..\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\fastapi\applications.py:4495: 2 warnings
|
||||
tests/test_animations.py: 22 warnings
|
||||
tests/test_api.py: 50 warnings
|
||||
tests/test_fonts.py: 6 warnings
|
||||
tests/test_frp.py: 8 warnings
|
||||
tests/test_library_order.py: 8 warnings
|
||||
tests/test_media_conversion.py: 20 warnings
|
||||
tests/test_mobile_control.py: 28 warnings
|
||||
tests/test_ota.py: 6 warnings
|
||||
tests/test_performance_mode.py: 2 warnings
|
||||
tests/test_scene_layers.py: 4 warnings
|
||||
tests/test_templates.py: 16 warnings
|
||||
tests/test_ui_copy_editor.py: 14 warnings
|
||||
tests/test_wifi.py: 6 warnings
|
||||
<仓库根目录>\测试相关资料\如何测试\本机测试环境\.venv\Lib\site-packages\fastapi\applications.py:4495: DeprecationWarning:
|
||||
on_event is deprecated, use lifespan event handlers instead.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
|
||||
|
||||
return self.router.on_event(event_type)
|
||||
|
||||
app\main.py:2079: 1 warning
|
||||
tests/test_animations.py: 11 warnings
|
||||
tests/test_api.py: 25 warnings
|
||||
tests/test_fonts.py: 3 warnings
|
||||
tests/test_frp.py: 4 warnings
|
||||
tests/test_library_order.py: 4 warnings
|
||||
tests/test_media_conversion.py: 10 warnings
|
||||
tests/test_mobile_control.py: 14 warnings
|
||||
tests/test_ota.py: 3 warnings
|
||||
tests/test_performance_mode.py: 1 warning
|
||||
tests/test_scene_layers.py: 2 warnings
|
||||
tests/test_templates.py: 8 warnings
|
||||
tests/test_ui_copy_editor.py: 7 warnings
|
||||
tests/test_wifi.py: 3 warnings
|
||||
<仓库根目录>\核桃派软件源代码\app\main.py:2079: DeprecationWarning:
|
||||
on_event is deprecated, use lifespan event handlers instead.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
|
||||
|
||||
@app.on_event("shutdown")
|
||||
|
||||
tests/test_media_conversion.py::test_free_crop_can_leave_only_one_source_pixel_visible_at_each_corner
|
||||
tests/test_media_conversion.py::test_free_crop_can_leave_only_one_source_pixel_visible_at_each_corner
|
||||
tests/test_media_conversion.py::test_free_crop_can_leave_only_one_source_pixel_visible_at_each_corner
|
||||
tests/test_media_conversion.py::test_free_crop_can_leave_only_one_source_pixel_visible_at_each_corner
|
||||
<仓库根目录>\核桃派软件源代码\tests\test_media_conversion.py:134: DeprecationWarning: Image.Image.getdata is deprecated and will be removed in Pillow 14 (2027-10-15). Use get_flattened_data instead.
|
||||
assert sum(pixel[0] > 240 for pixel in output.getdata()) == 1
|
||||
|
||||
tests/test_templates.py::test_template_crud_copy_persistence_and_thumbnail_cleanup
|
||||
<仓库根目录>\核桃派软件源代码\tests\test_templates.py:165: DeprecationWarning: Image.Image.getdata is deprecated and will be removed in Pillow 14 (2027-10-15). Use get_flattened_data instead.
|
||||
assert len(set(image.getdata())) > 1
|
||||
|
||||
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
|
||||
512 passed, 9 skipped, 8390 warnings in 162.85s (0:02:42)
|
||||
> "C:\Program Files\nodejs\node.EXE" --test tests/test_animation_ui.mjs tests/test_canvas_tools.mjs tests/test_color_math.mjs tests/test_current_display_playback_ui.mjs tests/test_device_ui.mjs tests/test_font_picker.mjs tests/test_frp_ui.mjs tests/test_interaction_feedback.mjs tests/test_scene_model.mjs tests/test_scene_layers.mjs tests/test_settings_ui.mjs tests/test_template_management_ui.mjs tests/test_ui_copy_editor.mjs tests/test_wifi_ui.mjs tests/test_workspace_order_ui.mjs
|
||||
✔ derives automatic frame names from current animation name and position (0.8905ms)
|
||||
✔ keeps custom frame names and restores automatic names when cleared (0.1147ms)
|
||||
✔ builds non-repeating animation edit context names (0.1237ms)
|
||||
✔ selects saved animation preview frames by ordered durations (0.764ms)
|
||||
✔ loads every preview frame through revision-checked pagination (0.6488ms)
|
||||
✔ validates configurable animation preview concurrency (0.3821ms)
|
||||
✔ rejects mixed revisions instead of showing a partial animation (1.5654ms)
|
||||
✔ validates frame duration only when explicitly called (0.4885ms)
|
||||
✔ moves selected frames as one ordered group (0.2723ms)
|
||||
✔ protects an eight pixel ring around interactive drag controls (0.2357ms)
|
||||
✔ reorders mixed library keys without mutating the source list (0.1522ms)
|
||||
✔ restores drag eligibility after protected pointer cancellation and drag end (0.5359ms)
|
||||
✔ animation workspace exposes two previews and the simplified control order (7.0698ms)
|
||||
✔ normal and pixel modes expose independent ranges and presets (1.3121ms)
|
||||
✔ pixel stamps are exact squares from 1x1 through 4x4 (0.2387ms)
|
||||
✔ pixel stamps clip at every canvas edge (0.1973ms)
|
||||
✔ normal circle geometry remains unchanged (0.0999ms)
|
||||
✔ line interpolation includes endpoints without coordinate gaps (0.2263ms)
|
||||
✔ older tools migrate while v3 restores the coordinate guide choice (0.2476ms)
|
||||
✔ coordinate guide spacing adapts to the transformed logical pixel size (0.1444ms)
|
||||
✔ coordinate guide ticks preserve logical values through zoom and pan (0.2051ms)
|
||||
✔ pixel mode markup and grid stay accessible and non-interactive (9.0143ms)
|
||||
✔ pixel undo history stores changed snapshots, caps entries, and clears (0.5226ms)
|
||||
✔ canvas view clamps scale and keeps a visible section in the viewport (0.2232ms)
|
||||
✔ zooming around an anchor preserves its logical position (0.2588ms)
|
||||
✔ floating editor button stays inside its safe viewport bounds (0.1569ms)
|
||||
✔ canvas editor markup, guarded input, and checkpoint events stay wired (5.1933ms)
|
||||
✔ normalizes and converts hexadecimal colors (1.3708ms)
|
||||
✔ converts RGB and HSV boundaries (0.2687ms)
|
||||
✔ round trips representative colors within 8-bit rounding (0.2699ms)
|
||||
✔ recent colors deduplicate, normalize, and evict the oldest (0.3041ms)
|
||||
✔ formats and projects looping playback without moving paused content (1.121ms)
|
||||
✔ seek dispatcher keeps one request in flight and flushes the newest position (4.2348ms)
|
||||
✔ topbar current display dialog exposes static close and animation controls (6.5266ms)
|
||||
✔ device workspace exposes the compact immediate pure-color test flow (6.1077ms)
|
||||
✔ font catalog normalization, grouping, and search are stable (1.2991ms)
|
||||
✔ font picker implements commit-only searchable combobox keyboard behavior (4.3202ms)
|
||||
✔ settings places unrestricted FRP maintenance at the bottom (4.7159ms)
|
||||
✔ FRP editor uses raw server storage and official validation errors (1.1139ms)
|
||||
✔ network diagnostics renders layered evidence (1.7464ms)
|
||||
✔ unavailable controls never masquerade as indefinite loading (6.3779ms)
|
||||
✔ action controls do not bypass the shared state module (7.9189ms)
|
||||
✔ HTTP requests time out with a stable user-facing error (15.7531ms)
|
||||
✔ demo library actions stay black, explain restrictions, and preserve copy (1.5646ms)
|
||||
✔ sortable cards protect controls and keep demo cards fixed (1.4711ms)
|
||||
✔ old scene migration rejects unknown fields and duplicate text without filtering (9.4326ms)
|
||||
✔ PNG compression round trips sparse and full brush pixels without DOM (18.4773ms)
|
||||
✔ blank and black are distinct; independent backgrounds follow layer order (5.5719ms)
|
||||
✔ disabled background colors stay independent through storage and copy (18.2751ms)
|
||||
✔ extended pixels survive storage but never enter the central output (5.6184ms)
|
||||
✔ move preview does not mutate source; confirmed clipping removes only outside ink (20.7736ms)
|
||||
✔ text clipping follows anchor and scale and is retained after edit/reload/copy (6.3203ms)
|
||||
✔ multiple text groups isolate edits, copies and IDs (0.5384ms)
|
||||
✔ strict v2 storage protects unknown data and the final brush invariant (2.9911ms)
|
||||
✔ creates a fixed 64x64 RGB scene (8.3545ms)
|
||||
✔ serializes pixelRgb as base64 and round trips an independent scene (30.0145ms)
|
||||
✔ moves a valid v1 draft to the stable key before removing exact legacy keys (22.8032ms)
|
||||
✔ keeps the v1 draft and all legacy keys when stable-key migration cannot write (6.6069ms)
|
||||
✔ preserves and blocks a future stable draft instead of falling back or writing blank (7.6802ms)
|
||||
✔ preserves and blocks a damaged stable draft (0.9426ms)
|
||||
✔ does not discard a damaged higher-priority legacy key during fallback migration (2.7322ms)
|
||||
✔ rejects damaged scene roots while skipping only damaged elements (5.4182ms)
|
||||
✔ normalizes text fields and creates a centered lowercase ok element (0.2989ms)
|
||||
✔ migrates the first valid canvas by v3, v2, legacy priority and merges text v1 (8.9943ms)
|
||||
✔ supports independent add, update, and delete operations for multiple text elements (1.1051ms)
|
||||
✔ duplicates with a deep copy, new id, 2px offset, and topmost order (0.324ms)
|
||||
✔ alpha-composites full RGBA layers in array order without mutating inputs (2.0929ms)
|
||||
✔ settings brightness explains an active temporary display-test override (6.587ms)
|
||||
✔ settings exposes full OTA upload progress and service recovery polling (4.7051ms)
|
||||
✔ settings automatically opens and safely copies a detailed OTA failure log (2.3833ms)
|
||||
✔ settings exposes a transactional performance-mode switch with the fixed warning (1.496ms)
|
||||
✔ settings exposes persisted animation preview concurrency below performance mode (1.9836ms)
|
||||
✔ template edit baseline distinguishes clean, dirty, and unbound scenes (2.2967ms)
|
||||
✔ template manager uses a monitor and unified four-row card actions (6.6472ms)
|
||||
✔ animation editing backs up and restores template edit ownership (1.4212ms)
|
||||
✔ special editor exposes the agreed modes and guarded editing flow (5.8489ms)
|
||||
✔ latched WiFi draft state remains dirty until explicitly cleared (1.2836ms)
|
||||
✔ WiFi settings expose independent network and prompt-delay controls (2.6322ms)
|
||||
✔ workspace order resolves saved ids and appends new registrations (1.1186ms)
|
||||
✔ workspace order movement is immutable and respects both boundaries (0.2128ms)
|
||||
✔ drawer exposes one editable list and commits only from the save action (5.9252ms)
|
||||
ℹ tests 81
|
||||
ℹ suites 0
|
||||
ℹ pass 81
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 594.5022
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\animation-thumbnail-preview.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\animation-ui-model.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\app.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\canvas-tools-model.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\color-math.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\color-picker.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\core.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\current-display-playback.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\font-picker.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\interaction-feedback.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\media-crop-geometry.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\media-import-ui-model.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\pixel-png.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\scene-board.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\scene-model-v1.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\scene-model.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\sortable-card.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\template-edit-model.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\ui-copy-runtime.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\vendor\fflate\fflate.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\animations.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\canvas.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\device.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\frp-settings.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\layers.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\media-import.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\settings.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\templates.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\text.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\views\wifi-settings.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\wifi-draft-state.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check <仓库根目录>\核桃派软件源代码\app\static\workspace-order.js
|
||||
> "C:\Program Files\nodejs\node.EXE" --check app/ui_copy_editor/static/editor.js
|
||||
> <仓库根目录>\测试相关资料\如何测试\本机测试环境\.venv\Scripts\python.exe scripts/build_ui_copy_catalog.py --check
|
||||
ui-copy.json is current
|
||||
本机测试套件通过:all
|
||||
Reference in New Issue
Block a user