Skip to content

fix: resolve selective export AttributeError and RBAC role deletion failures#2921

Merged
crivetimihai merged 2 commits intomainfrom
fix/export-rbac-bugs
Feb 13, 2026
Merged

fix: resolve selective export AttributeError and RBAC role deletion failures#2921
crivetimihai merged 2 commits intomainfrom
fix/export-rbac-bugs

Conversation

@crivetimihai
Copy link
Copy Markdown
Member

Summary

Test plan

  • Selective export verified via curl: POST /export/selective returns 200
  • Custom role delete verified via curl: DELETE /rbac/roles/{id} returns 200
  • System role delete verified via curl: returns 400 (was 500)
  • Unit tests: 11,442 passed, 144 skipped
  • API E2E tests: 91 passed, 16 skipped
  • RBAC browser UI tests: 25 passed, 1 skipped (3/3 runs stable)
  • Combined E2E suite: 116 passed, 17 skipped

Closes #2916
Closes #2917

…ailures

- Fix selective export using non-existent model attributes (rate_limit,
  timeout, is_active) by using getattr() and .enabled (#2916)
- Fix broken SQLAlchemy query in role deletion: select().update() →
  update().where().values() (#2917)
- Add ValueError handler for system role deletion returning 400 not 500
- Harden browser UI RBAC tests against intermittent cookie auth failures

Closes #2916
Closes #2917

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
@crivetimihai crivetimihai self-assigned this Feb 13, 2026
@crivetimihai crivetimihai added testing Testing (unit, e2e, manual, automated, etc) playwright Automated UI testing with playwright labels Feb 13, 2026
- test_delete_prompt: use retry-based wait_for_entity_deleted() instead
  of immediate assertion after API delete (race condition fix)
- test_delete_server_ui_button: add scroll_into_view, force click, and
  expect_navigation (mirrors gateways_page pattern from #2890)
- test_auth_type_filter/category_filter: wait for HTMX swap completion
  instead of fixed 1000ms timeout; skip if filter option not available
- Add unit test for ValueError handler in rbac.py delete_role (line 286)
  to satisfy diff-cover threshold

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
@crivetimihai crivetimihai merged commit 1887b0b into main Feb 13, 2026
53 checks passed
@crivetimihai crivetimihai deleted the fix/export-rbac-bugs branch February 13, 2026 14:54
suciu-daniel pushed a commit that referenced this pull request Feb 16, 2026
…ailures (#2921)

* fix: resolve selective export AttributeError and RBAC role deletion failures

- Fix selective export using non-existent model attributes (rate_limit,
  timeout, is_active) by using getattr() and .enabled (#2916)
- Fix broken SQLAlchemy query in role deletion: select().update() →
  update().where().values() (#2917)
- Add ValueError handler for system role deletion returning 400 not 500
- Harden browser UI RBAC tests against intermittent cookie auth failures

Closes #2916
Closes #2917

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* fix: harden flaky browser UI tests and add ValueError coverage

- test_delete_prompt: use retry-based wait_for_entity_deleted() instead
  of immediate assertion after API delete (race condition fix)
- test_delete_server_ui_button: add scroll_into_view, force click, and
  expect_navigation (mirrors gateways_page pattern from #2890)
- test_auth_type_filter/category_filter: wait for HTMX swap completion
  instead of fixed 1000ms timeout; skip if filter option not available
- Add unit test for ValueError handler in rbac.py delete_role (line 286)
  to satisfy diff-cover threshold

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
vishu-bh pushed a commit that referenced this pull request Feb 18, 2026
…ailures (#2921)

* fix: resolve selective export AttributeError and RBAC role deletion failures

- Fix selective export using non-existent model attributes (rate_limit,
  timeout, is_active) by using getattr() and .enabled (#2916)
- Fix broken SQLAlchemy query in role deletion: select().update() →
  update().where().values() (#2917)
- Add ValueError handler for system role deletion returning 400 not 500
- Harden browser UI RBAC tests against intermittent cookie auth failures

Closes #2916
Closes #2917

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* fix: harden flaky browser UI tests and add ValueError coverage

- test_delete_prompt: use retry-based wait_for_entity_deleted() instead
  of immediate assertion after API delete (race condition fix)
- test_delete_server_ui_button: add scroll_into_view, force click, and
  expect_navigation (mirrors gateways_page pattern from #2890)
- test_auth_type_filter/category_filter: wait for HTMX swap completion
  instead of fixed 1000ms timeout; skip if filter option not available
- Add unit test for ValueError handler in rbac.py delete_role (line 286)
  to satisfy diff-cover threshold

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Vishu Bhatnagar <vishu.bhatnagar@ibm.com>
kcostell06 pushed a commit to kcostell06/mcp-context-forge that referenced this pull request Feb 24, 2026
…ailures (IBM#2921)

* fix: resolve selective export AttributeError and RBAC role deletion failures

- Fix selective export using non-existent model attributes (rate_limit,
  timeout, is_active) by using getattr() and .enabled (IBM#2916)
- Fix broken SQLAlchemy query in role deletion: select().update() →
  update().where().values() (IBM#2917)
- Add ValueError handler for system role deletion returning 400 not 500
- Harden browser UI RBAC tests against intermittent cookie auth failures

Closes IBM#2916
Closes IBM#2917

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* fix: harden flaky browser UI tests and add ValueError coverage

- test_delete_prompt: use retry-based wait_for_entity_deleted() instead
  of immediate assertion after API delete (race condition fix)
- test_delete_server_ui_button: add scroll_into_view, force click, and
  expect_navigation (mirrors gateways_page pattern from IBM#2890)
- test_auth_type_filter/category_filter: wait for HTMX swap completion
  instead of fixed 1000ms timeout; skip if filter option not available
- Add unit test for ValueError handler in rbac.py delete_role (line 286)
  to satisfy diff-cover threshold

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

playwright Automated UI testing with playwright testing Testing (unit, e2e, manual, automated, etc)

Projects

None yet

1 participant