feat(webui): complete files quick access
This commit is contained in:
@@ -2,6 +2,7 @@ from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from unittest.mock import patch
|
||||
|
||||
from sqlalchemy import create_engine, text
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
@@ -12,7 +13,11 @@ from govoplan_core.core.change_sequence import ChangeSequenceEntry
|
||||
from govoplan_core.db.base import Base
|
||||
from govoplan_files.backend.capabilities import FilesAccessService, virtual_folder_resource_id
|
||||
from govoplan_files.backend.db.models import FileAsset, FileFolder, FileShare
|
||||
from govoplan_files.backend.storage.files import count_assets_for_user, list_assets_for_user
|
||||
from govoplan_files.backend.storage.files import (
|
||||
count_assets_for_user,
|
||||
list_assets_for_user,
|
||||
list_recent_assets_for_user,
|
||||
)
|
||||
|
||||
|
||||
TENANT_ID = "tenant-1"
|
||||
@@ -22,6 +27,54 @@ GROUP_ID = "group-1"
|
||||
|
||||
|
||||
class FilesAccessProviderTests(unittest.TestCase):
|
||||
def test_recent_projection_is_bounded_ordered_and_access_filtered(self) -> None:
|
||||
session = _session()
|
||||
self.addCleanup(_close_session, session)
|
||||
_seed_access_subjects(session)
|
||||
now = datetime.now(timezone.utc)
|
||||
session.add_all(
|
||||
[
|
||||
FileAsset(
|
||||
id="owned-older",
|
||||
tenant_id=TENANT_ID,
|
||||
owner_type="user",
|
||||
owner_user_id=USER_ID,
|
||||
display_path="older.pdf",
|
||||
filename="older.pdf",
|
||||
updated_at=now - timedelta(hours=2),
|
||||
),
|
||||
FileAsset(
|
||||
id="owned-newer",
|
||||
tenant_id=TENANT_ID,
|
||||
owner_type="user",
|
||||
owner_user_id=USER_ID,
|
||||
display_path="newer.pdf",
|
||||
filename="newer.pdf",
|
||||
updated_at=now - timedelta(hours=1),
|
||||
),
|
||||
FileAsset(
|
||||
id="other-newest",
|
||||
tenant_id=TENANT_ID,
|
||||
owner_type="user",
|
||||
owner_user_id=OTHER_USER_ID,
|
||||
display_path="private.pdf",
|
||||
filename="private.pdf",
|
||||
updated_at=now,
|
||||
),
|
||||
]
|
||||
)
|
||||
session.commit()
|
||||
|
||||
with patch("govoplan_files.backend.storage.files.user_group_ids", return_value=[]):
|
||||
recent = list_recent_assets_for_user(
|
||||
session,
|
||||
tenant_id=TENANT_ID,
|
||||
user_id=USER_ID,
|
||||
limit=1,
|
||||
)
|
||||
|
||||
self.assertEqual(["owned-newer"], [asset.id for asset in recent])
|
||||
|
||||
def test_file_access_provider_explains_owner_share_admin_and_missing_resources(self) -> None:
|
||||
session = _session()
|
||||
self.addCleanup(_close_session, session)
|
||||
|
||||
Reference in New Issue
Block a user