feat(04-01): add Wave 0 xfail stubs for FOLD and SHARE requirements
- 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")
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
"""
|
||||
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")
|
||||
Reference in New Issue
Block a user