62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
"""Tests d'aïllament de projectes per user_id."""
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def _db(in_memory_db):
|
|
pass
|
|
|
|
|
|
def _make_user(email, role='user'):
|
|
from backend.app.models.db_models import UserModel
|
|
from backend.app.db import get_session
|
|
with get_session() as db:
|
|
user = UserModel(email=email, name=email, role=role, status='active')
|
|
db.add(user)
|
|
db.commit()
|
|
db.refresh(user)
|
|
return user.id
|
|
|
|
|
|
def test_list_projects_filtered_by_user():
|
|
from backend.app.models.project import ProjectManager
|
|
uid1 = _make_user('u1@test.com')
|
|
uid2 = _make_user('u2@test.com')
|
|
|
|
ProjectManager.create_project(name="U1-A", user_id=uid1)
|
|
ProjectManager.create_project(name="U1-B", user_id=uid1)
|
|
ProjectManager.create_project(name="U2-A", user_id=uid2)
|
|
|
|
u1_projects = ProjectManager.list_projects(user_id=uid1)
|
|
assert len(u1_projects) == 2
|
|
assert all(p['user_id'] == uid1 for p in u1_projects)
|
|
|
|
u2_projects = ProjectManager.list_projects(user_id=uid2)
|
|
assert len(u2_projects) == 1
|
|
assert u2_projects[0]['name'] == 'U2-A'
|
|
|
|
|
|
def test_list_projects_no_filter_returns_all():
|
|
from backend.app.models.project import ProjectManager
|
|
uid1 = _make_user('all1@test.com')
|
|
uid2 = _make_user('all2@test.com')
|
|
ProjectManager.create_project(name="P1", user_id=uid1)
|
|
ProjectManager.create_project(name="P2", user_id=uid2)
|
|
all_projects = ProjectManager.list_projects(user_id=None)
|
|
assert len(all_projects) >= 2
|
|
|
|
|
|
def test_create_project_assigns_user_id():
|
|
from backend.app.models.project import ProjectManager
|
|
uid = _make_user('owner@test.com')
|
|
proj = ProjectManager.create_project(name="Owned", user_id=uid)
|
|
assert proj['user_id'] == uid
|
|
|
|
|
|
def test_to_dict_includes_user_id():
|
|
from backend.app.models.project import ProjectManager
|
|
uid = _make_user('dict@test.com')
|
|
proj = ProjectManager.create_project(name="DictTest", user_id=uid)
|
|
assert 'user_id' in proj
|
|
assert proj['user_id'] == uid
|