• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

maximunited / imou_life / 25288999887
90%

Build:
DEFAULT BRANCH: master
Ran 03 May 2026 07:47PM UTC
Jobs 4
Files 21
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 May 2026 07:45PM UTC coverage: 89.637% (+0.07%) from 89.563%
25288999887

push

github

web-flow
feat: implement UI device deletion support (async_remove_config_entry_device) (#32)

* feat: implement async_remove_config_entry_device for manual device deletion

Complete stale-devices Gold tier requirement with UI deletion support.

**Added:**
- `async_remove_config_entry_device()` callback in `__init__.py`
- Enables delete button in Settings ? Devices & Services UI
- Validates device belongs to config entry before allowing removal
- Returns True for safe removal, False to prevent deletion
- DeviceEntry import from helpers.device_registry

**Testing:**
- Created `test_device_removal.py` with 4 comprehensive tests
- Tests matching device removal (returns True)
- Tests non-matching device prevention (returns False)
- Tests multiple identifiers handling
- Tests edge case with missing device_id
- All 396 unit tests passing ?

**Gold Tier Impact:**
- Completes stale-devices requirement (automatic + manual)
- Users can now delete devices from UI
- Automatic detection via repair flow
- Manual deletion via device settings

**Documentation:**
- Updated `gold_tier_verification.md` with full implementation evidence
- Documents both automatic detection and manual deletion support

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: correct device identifier comparison in async_remove_config_entry_device

**Bug Fix:**
CodeRabbit caught a critical bug - was comparing device identifier against
CONF_DEVICE_ID instead of config_entry.entry_id.

**Root Cause:**
Entities register devices with identifier tuple: (DOMAIN, config_entry.entry_id)
But the function was checking: identifier[1] == device_id (from CONF_DEVICE_ID)
These are different values, so device removal would always fail.

**Fix:**
- Changed comparison from device_id to config_entry.entry_id
- Added comment explaining identifier source
- Updated all 4 unit tests to use correct identifier tuples
- Tests now use (DOMAIN, "test_entry_id") matching config_entry.entry_id

**Testing:**
- All 396 u... (continued)

11 of 11 new or added lines in 1 file covered. (100.0%)

1384 of 1544 relevant lines covered (89.64%)

3.58 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-3.12 - 25288999887.1 03 May 2026 07:47PM UTC 21
89.64
GitHub Action Run
2 run-3.13 - 25288999887.2 03 May 2026 07:47PM UTC 21
89.64
GitHub Action Run
3 run-3.11 - 25288999887.3 03 May 2026 07:47PM UTC 21
89.64
GitHub Action Run
4 run-3.14 - 25288999887.4 03 May 2026 07:48PM UTC 21
89.61
GitHub Action Run
Source Files on build 25288999887
  • Tree
  • List 21
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25288999887
  • f9a349fb on github
  • Prev Build on master (#25288740875)
  • Next Build on master (#25290189604)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc