Files
Kochbuch/tests/conftest.py
T
Kyle DammannandClaude Opus 5.5 6f7e4f92ca Add phase 2: recipes with visibility, photos, search and favourites
- Recipe model with ingredients (amount/range, unit, group, note), steps,
  lowercase tags, author notes, source URL and private/public visibility
- Central RecipeQuerySet.visible_to() used by every read path; edit only
  by owner, delete by owner or admin (visible recipes only)
- Text-based editing: ingredient/step parser with roundtrip and scaling
- Photo upload (JPEG/PNG/WebP/HEIC), re-encoded to WebP without EXIF,
  thumbnails, cover image, served only through permission-checked view
- Search across title, description, ingredients, tags; ingredient and tag
  filters; "mine" and favourites views
- Admin can delete all recipes of a deactivated user
- Acceptance tests: private recipes unreachable for others and admins
  in list, search, tags, favourites, detail, edit, delete and image URLs

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 21:37:13 +01:00

44 lines
922 B
Python

import pytest
from django.test import Client
from accounts.models import User
PASSWORD = "Sehr-sicheres-Passwort-42"
@pytest.fixture
def admin_user(db):
return User.objects.create_admin(email="[email protected]", password=PASSWORD, display_name="Admin")
@pytest.fixture
def user(db):
return User.objects.create_user(email="[email protected]", password=PASSWORD, display_name="Anna")
@pytest.fixture
def other_user(db):
return User.objects.create_user(email="[email protected]", password=PASSWORD, display_name="Ben")
def logged_in_client(u):
c = Client()
c.force_login(u)
return c
@pytest.fixture
def admin_client(admin_user):
return logged_in_client(admin_user)
@pytest.fixture
def user_client(user):
return logged_in_client(user)
@pytest.fixture(autouse=True)
def media_root(tmp_path, settings):
settings.MEDIA_ROOT = tmp_path / "media"
return settings.MEDIA_ROOT