annator-full-system / scripts /utils /test_visibility.py
github-actions
Sync from ATOM master 2026-08-17T19:34:18Z
81e8bb6
Raw History Blame Contribute Delete
2.2 kB
"""
Test Data Visibility Implementation
"""
import sys
sys.path.append('backend')
def test_visibility():
print("=== Data Visibility Test ===\n")
# 1. Test DataVisibility enum
from core.data_visibility import DataVisibility
print("1. DataVisibility Enum:")
for v in DataVisibility:
print(f" - {v.name}: {v.value}")
# 2. Test can_access function
from core.data_visibility import can_access
class MockTeam:
def __init__(self, id):
self.id = id
class MockUser:
def __init__(self, id, team_ids):
self.id = id
self.teams = [MockTeam(tid) for tid in team_ids]
class MockResource:
def __init__(self, visibility, owner_id, team_id):
self.visibility = visibility
self.owner_id = owner_id
self.team_id = team_id
user_a = MockUser("user_a", ["team_1"])
user_b = MockUser("user_b", ["team_2"])
# Test private visibility
private_resource = MockResource("private", "user_a", None)
assert can_access(user_a, private_resource) == True, "Owner should access private"
assert can_access(user_b, private_resource) == False, "Non-owner should NOT access private"
print("\n2. Private visibility: ✓")
# Test team visibility
team_resource = MockResource("team", "user_a", "team_1")
assert can_access(user_a, team_resource) == True, "Team member should access"
assert can_access(user_b, team_resource) == False, "Non-team member should NOT access"
print("3. Team visibility: ✓")
# Test workspace visibility
workspace_resource = MockResource("workspace", "user_a", None)
assert can_access(user_a, workspace_resource) == True
assert can_access(user_b, workspace_resource) == True
print("4. Workspace visibility: ✓")
# 3. Test models have visibility
from core.models import WorkflowExecution, ChatProcess
assert hasattr(WorkflowExecution, 'visibility')
assert hasattr(ChatProcess, 'visibility')
print("\n5. Models have visibility columns: ✓")
print("\n=== All Tests Passed ===")
if __name__ == "__main__":
test_visibility()