e0075989df
- test_folders.py: 13 stubs for FOLD-01..05 (create, rename, delete, move, breadcrumb, sort, FTS)
- test_shares.py: 7 stubs for SHARE-01..05 (share, received list, quota isolation, revoke, duplicate)
- FTS tests carry both xfail and skipif(INTEGRATION) decorators
- All stubs: xfail(strict=False), body is pytest.xfail("not implemented yet")
80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
"""
|
|
Share API tests — Wave 0 xfail stubs for Phase 4.
|
|
|
|
All tests in this file are xfail stubs. They will be implemented in Plan 04-05.
|
|
The stubs ensure pytest collects them and keeps CI green before implementation
|
|
code exists.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
import pytest
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# SHARE-01: Share a document
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
@pytest.mark.xfail(strict=False)
|
|
async def test_share_success(async_client, auth_user):
|
|
"""POST /api/shares grants share; recipient can see doc via GET /api/shares/received."""
|
|
pytest.xfail("not implemented yet")
|
|
|
|
|
|
@pytest.mark.xfail(strict=False)
|
|
async def test_share_handle_not_found(async_client, auth_user):
|
|
"""POST /api/shares with unknown handle returns 404."""
|
|
pytest.xfail("not implemented yet")
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# SHARE-02: List shared-with-me
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
@pytest.mark.xfail(strict=False)
|
|
async def test_shared_with_me(async_client, auth_user):
|
|
"""GET /api/shares/received lists docs shared with current user."""
|
|
pytest.xfail("not implemented yet")
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# SHARE-03: Quota isolation
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
@pytest.mark.xfail(strict=False)
|
|
async def test_share_no_quota_impact(async_client, auth_user):
|
|
"""Share does not increment recipient's quota used_bytes."""
|
|
pytest.xfail("not implemented yet")
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# SHARE-04: Revoke share
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
@pytest.mark.xfail(strict=False)
|
|
async def test_revoke_share(async_client, auth_user):
|
|
"""DELETE /api/shares/{id} removes share; GET /api/shares/received no longer lists the doc."""
|
|
pytest.xfail("not implemented yet")
|
|
|
|
|
|
@pytest.mark.xfail(strict=False)
|
|
async def test_share_revoke_wrong_owner_404(async_client, auth_user):
|
|
"""DELETE /api/shares/{id} by non-owner returns 404."""
|
|
pytest.xfail("not implemented yet")
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# SHARE-05: Duplicate share
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
@pytest.mark.xfail(strict=False)
|
|
async def test_share_duplicate(async_client, auth_user):
|
|
"""POST /api/shares same doc+recipient twice returns 409."""
|
|
pytest.xfail("not implemented yet")
|