Skip to content

Commit e8816a3

Browse files
committed
feat: add support for Roborock Q5 Max+ and update test snapshots
1 parent ac65380 commit e8816a3

6 files changed

Lines changed: 365 additions & 5 deletions

File tree

tests/__snapshots__/test_supported_features.ambr

Lines changed: 177 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# serializer version: 1
2-
# name: test_device_features_from_home_data[home_data_device_a123.json]
2+
# name: test_device_features_from_home_data[home_data_device_pearls.json]
33
dict({
44
'is_activate_video_charging_and_standby_supported': False,
55
'is_analysis_supported': False,
@@ -351,6 +351,182 @@
351351
'is_workday_holiday_supported': False,
352352
})
353353
# ---
354+
# name: test_device_features_from_home_data[home_data_device_q5_max.json]
355+
dict({
356+
'is_activate_video_charging_and_standby_supported': False,
357+
'is_analysis_supported': False,
358+
'is_any_state_transit_goto_supported': True,
359+
'is_auto_collection_2_supported': False,
360+
'is_auto_delivery_field_in_global_status_supported': False,
361+
'is_auto_tear_down_mop_supported': False,
362+
'is_avoid_collision_mode_supported': False,
363+
'is_avoid_collision_supported': False,
364+
'is_back_charge_auto_wash_supported': True,
365+
'is_back_wash_new_smart_supported': False,
366+
'is_careful_slow_mop_supported': True,
367+
'is_carpet_custom_clean_supported': False,
368+
'is_carpet_deep_clean_supported': False,
369+
'is_carpet_long_haired_ex_supported': False,
370+
'is_carpet_long_haired_supported': False,
371+
'is_carpet_pressure_use_origin_paras_supported': False,
372+
'is_carpet_shape_type_supported': False,
373+
'is_carpet_show_on_map': True,
374+
'is_carpet_supported': False,
375+
'is_ces_2022_supported': False,
376+
'is_clean_count_setting_supported': False,
377+
'is_clean_direct_status_supported': False,
378+
'is_clean_efficiency_supported': False,
379+
'is_clean_fluid_delivery_supported': False,
380+
'is_clean_history_time_line_supported': False,
381+
'is_clean_route_deep_slow_plus_supported': False,
382+
'is_clean_route_fast_mode_supported': True,
383+
'is_clean_route_setting_supported': False,
384+
'is_clean_then_mop_mode_supported': False,
385+
'is_clean_time_line_supported': False,
386+
'is_collect_dust_count_show_supported': False,
387+
'is_collect_dust_mode_supported': True,
388+
'is_corner_clean_mode_supported': False,
389+
'is_corner_mop_stretch_supported': False,
390+
'is_ctm_with_repeat_supported': False,
391+
'is_current_map_restore_enabled': True,
392+
'is_custom_clean_mode_count_supported': False,
393+
'is_custom_mode_supported': True,
394+
'is_custom_water_box_distance_supported': False,
395+
'is_customized_clean_supported': False,
396+
'is_detect_wire_carpet_supported': False,
397+
'is_dirty_object_detect_supported': False,
398+
'is_dirty_replenish_clean_supported': False,
399+
'is_dry_interval_timer_supported': False,
400+
'is_dss_believable': True,
401+
'is_dual_band_wi_fi_supported': False,
402+
'is_dust_collection_setting_supported': True,
403+
'is_dynamically_add_clean_zones_supported': False,
404+
'is_dynamically_skip_clean_zone_supported': False,
405+
'is_egg_dance_mode_supported': False,
406+
'is_egg_mode_supported_from_new_features': False,
407+
'is_exact_custom_mode_supported': False,
408+
'is_exhibition_function_supported': False,
409+
'is_floor_dir_clean_any_time_supported': False,
410+
'is_flow_led_setting_supported': False,
411+
'is_follow_low_obs_supported': False,
412+
'is_full_duples_switch_supported': False,
413+
'is_fw_filter_obstacle_supported': True,
414+
'is_gap_deep_clean_supported': False,
415+
'is_goto_pure_clean_path_supported': True,
416+
'is_hot_wash_towel_supported': False,
417+
'is_identify_room_supported': False,
418+
'is_ignore_unknown_map_object_supported': True,
419+
'is_lds_lifting_supported': False,
420+
'is_led_status_switch_supported': False,
421+
'is_left_water_drain_supported': True,
422+
'is_low_area_access_supported': False,
423+
'is_main_brush_up_down_supported_from_str': False,
424+
'is_map_beautify_internal_debug_supported': True,
425+
'is_map_carpet_add_support': False,
426+
'is_map_eraser_supported': False,
427+
'is_matter_supported': False,
428+
'is_max_plus_mode_supported': False,
429+
'is_max_zone_opened_supported': False,
430+
'is_mechanical_arm_mode_supported': False,
431+
'is_midway_back_to_dock_supported': False,
432+
'is_min_battery_15_to_clean_task_supported': False,
433+
'is_mop_forbidden_supported': False,
434+
'is_mop_path_supported': False,
435+
'is_mop_shake_module_supported': False,
436+
'is_mop_shake_water_max_supported': False,
437+
'is_multi_floor_supported': False,
438+
'is_multi_map_segment_timer_supported': True,
439+
'is_new_ai_recognition_supported': False,
440+
'is_new_data_for_clean_history': True,
441+
'is_new_data_for_clean_history_detail': True,
442+
'is_new_endpoint_supported': True,
443+
'is_new_remote_view_supported': False,
444+
'is_no_need_carpet_press_set_supported': False,
445+
'is_none_pure_clean_mop_with_max_plus': True,
446+
'is_object_detect_check_supported': False,
447+
'is_offline_map_supported': True,
448+
'is_optimize_battery_supported': False,
449+
'is_order_clean_supported': False,
450+
'is_over_sea_ctm_supported': False,
451+
'is_pet_snapshot_supported': False,
452+
'is_pet_supplies_deep_clean_supported': False,
453+
'is_program_mode_supported': False,
454+
'is_pumping_water_supported': False,
455+
'is_pure_clean_mop_supported': True,
456+
'is_re_segment_supported': True,
457+
'is_record_allowed': True,
458+
'is_remote_supported': False,
459+
'is_right_brush_stretch_supported': False,
460+
'is_room_name_supported': True,
461+
'is_rpc_retry_supported': True,
462+
'is_rubber_brush_carpet_supported': False,
463+
'is_set_child_supported': True,
464+
'is_setting_carpet_first_supported': False,
465+
'is_shake_mop_set_supported': True,
466+
'is_should_show_arm_over_load_supported': False,
467+
'is_show_clean_finish_reason_supported': True,
468+
'is_show_general_obstacle_supported': False,
469+
'is_show_obstacle_photo_supported': False,
470+
'is_side_brush_lift_carpet_supported': False,
471+
'is_small_side_mop_supported': False,
472+
'is_smart_clean_mode_set_supported': False,
473+
'is_soak_and_wash_supported': False,
474+
'is_soft_clean_mode_supported': False,
475+
'is_sr_map_supported': False,
476+
'is_super_deep_wash_supported': True,
477+
'is_support_api_app_stop_grasp_supported': False,
478+
'is_support_backup_map': True,
479+
'is_support_clean_estimate': True,
480+
'is_support_cliff_zone': True,
481+
'is_support_custom_carpet': False,
482+
'is_support_custom_dnd': True,
483+
'is_support_custom_door_sill': True,
484+
'is_support_custom_mode_in_cleaning': True,
485+
'is_support_fetch_timer_summary': False,
486+
'is_support_floor_direction': True,
487+
'is_support_floor_edit': True,
488+
'is_support_furniture': True,
489+
'is_support_get_particular_status_supported': False,
490+
'is_support_incremental_map': True,
491+
'is_support_main_brush_up_down_supported': False,
492+
'is_support_mop_back_pwm_set': False,
493+
'is_support_quick_map_builder': True,
494+
'is_support_remote_control_in_call': False,
495+
'is_support_room_tag': True,
496+
'is_support_set_switch_map_mode': True,
497+
'is_support_set_volume_in_call': False,
498+
'is_support_side_brush_up_down_supported': False,
499+
'is_support_smart_door_sill': True,
500+
'is_support_smart_global_clean_with_custom_mode': True,
501+
'is_support_smart_scene': True,
502+
'is_support_stuck_zone': True,
503+
'is_support_voice_control_debug': False,
504+
'is_support_water_mode': True,
505+
'is_supported_download_test_voice': True,
506+
'is_supported_drying': False,
507+
'is_supported_valley_electricity': True,
508+
'is_sync_server_name_supported': False,
509+
'is_three_d_mapping_inner_test_supported': False,
510+
'is_tidyup_zones_supported': False,
511+
'is_two_gears_no_collision_supported': False,
512+
'is_two_key_real_time_video_supported': False,
513+
'is_two_key_rtv_in_charging_supported': False,
514+
'is_type_identify_supported': False,
515+
'is_unsave_map_reason_supported': True,
516+
'is_uvc_sterilize_supported': False,
517+
'is_video_monitor_supported': True,
518+
'is_video_patrol_supported': False,
519+
'is_video_setting_supported': True,
520+
'is_voice_control_led_supported': False,
521+
'is_voice_control_supported': False,
522+
'is_wash_then_charge_cmd_supported': True,
523+
'is_water_leak_check_supported': False,
524+
'is_water_slide_mode_supported': False,
525+
'is_water_up_down_drain_supported': True,
526+
'is_wifi_manage_supported': True,
527+
'is_workday_holiday_supported': False,
528+
})
529+
# ---
354530
# name: test_device_features_from_home_data[home_data_device_q7.json]
355531
dict({
356532
'is_activate_video_charging_and_standby_supported': False,

tests/devices/traits/v1/__snapshots__/test_device_features.ambr

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# serializer version: 1
2-
# name: test_is_attribute_supported[home_data_device_a123.json]
2+
# name: test_is_attribute_supported[home_data_device_pearls.json]
3+
dict({
4+
'battery': True,
5+
'charge_status': True,
6+
'dry_status': True,
7+
'error_code': True,
8+
'fan_power': True,
9+
'state': True,
10+
'water_box_mode': True,
11+
})
12+
# ---
13+
# name: test_is_attribute_supported[home_data_device_q5_max.json]
314
dict({
415
'battery': True,
516
'charge_status': True,
@@ -54,7 +65,14 @@
5465
'water_box_mode': True,
5566
})
5667
# ---
57-
# name: test_is_consumable_field_supported[home_data_device_a123.json]
68+
# name: test_is_consumable_field_supported[home_data_device_pearls.json]
69+
dict({
70+
'filter_work_time': True,
71+
'main_brush_work_time': True,
72+
'side_brush_work_time': True,
73+
})
74+
# ---
75+
# name: test_is_consumable_field_supported[home_data_device_q5_max.json]
5876
dict({
5977
'filter_work_time': True,
6078
'main_brush_work_time': True,

tests/mock_data.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,15 +139,13 @@
139139
SS07_PRODUCT_DATA = PRODUCTS["home_data_product_ss07.json"]
140140
A102_PRODUCT_DATA = PRODUCTS["home_data_product_a102.json"]
141141
A114_PRODUCT_DATA = PRODUCTS["home_data_product_a114.json"]
142-
A147_PRODUCT_DATA = PRODUCTS["home_data_product_a147.json"]
143142

144143
# Devices
145144
S7_MAXV_DEVICE_DATA = DEVICES["home_data_device_s7_maxv.json"]
146145
Q7_DEVICE_DATA = DEVICES["home_data_device_q7.json"]
147146
Q10_DEVICE_DATA = DEVICES["home_data_device_q10.json"]
148147
ZEO_ONE_DEVICE_DATA = DEVICES["home_data_device_zeo_one.json"]
149148
SAROS_10R_DEVICE_DATA = DEVICES["home_data_device_saros_10r.json"]
150-
SAROS_10_DEVICE_DATA = DEVICES["home_data_device_saros.json"]
151149

152150
# All testdata devices joined with their matching product (keyed by device filename).
153151
# Devices whose productId has no corresponding product file are omitted.
File renamed without changes.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"duid": "device-id-a125",
3+
"name": "Roborock Q5 Max+",
4+
"localKey": "key123key123key1",
5+
"productId": "product-id-a125",
6+
"fv": "02.01.24",
7+
"activeTime": 1765325043,
8+
"timeZoneId": "America/Chicago",
9+
"iconUrl": "",
10+
"share": false,
11+
"online": true,
12+
"pv": "1.0",
13+
"tuyaMigrated": false,
14+
"extra": "{}",
15+
"sn": "A125SAMPLESNTEST",
16+
"featureSet": "2097860516935167",
17+
"newFeatureSet": "00000040385AFFF6",
18+
"deviceStatus": {
19+
"121": 8,
20+
"122": 100,
21+
"123": 106,
22+
"125": 11,
23+
"126": 0,
24+
"127": 0,
25+
"128": 0,
26+
"133": 1,
27+
"120": 0,
28+
"124": 204
29+
},
30+
"silentOtaSwitch": true,
31+
"f": false
32+
}

0 commit comments

Comments
 (0)