test_viewable_archive_unarchive_e2e fails in CI: test asserts archived viewable disappears from owner's listing, but the listing route intentionally includes archived viewables for the owner (with_archived=True when requesting_user_id == user.user_id). Test was written before the route was changed to show archived views to owners.
The listing route sets with_archived = requesting_user_id == user.user_id or is_staff, so owners always see their archived viewables. Fix the test to assert archived_at is not None on the viewable in the listing (not that it's absent), and add a separate non-owner listing check to verify archived views are hidden from others:
# Instead of:
assert viewname not in active_viewable_names
# Do:
archived_view = next((v for v in viewables_list['viewables'] if v['viewname'] == viewname), None)
assert archived_view is not None, 'Owner should still see their archived viewable'
assert archived_view['archived_at'] is not None
# And verify non-owners can't see it:
resp = other_client.get(f'/v/{username}/viewables')
non_owner_names = [v['viewname'] for v in resp.json()['viewables']]
assert viewname not in non_owner_names