docs: record redesign review artifacts
This commit is contained in:
74
tasks/evidence/2026-09-24/create-local-baseline-fixtures.py
Normal file
74
tasks/evidence/2026-09-24/create-local-baseline-fixtures.py
Normal file
@@ -0,0 +1,74 @@
|
||||
"""Create disposable Bundle 0 browser fixtures in the isolated Django test database.
|
||||
|
||||
Run only with --settings=config.settings.test and BUNDLE0_TEST_PASSWORD set.
|
||||
Never point TEST_DB_NAME at a shared or production database.
|
||||
"""
|
||||
|
||||
import os
|
||||
from datetime import timedelta
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils import timezone
|
||||
|
||||
from apps.blog.models import Post
|
||||
from apps.events.models import Event
|
||||
from apps.users.models import User
|
||||
|
||||
|
||||
assert os.environ.get("DJANGO_SETTINGS_MODULE") == "config.settings.test"
|
||||
assert settings.DATABASES["default"]["ENGINE"] == "django.db.backends.sqlite3"
|
||||
password = os.environ["BUNDLE0_TEST_PASSWORD"]
|
||||
now = timezone.now()
|
||||
|
||||
|
||||
def fixture_user(username, mobile, *, staff=False):
|
||||
user, _ = User.objects.get_or_create(
|
||||
username=username,
|
||||
defaults={"mobile": mobile, "email": f"{username}@example.invalid"},
|
||||
)
|
||||
user.mobile = mobile
|
||||
user.email = f"{username}@example.invalid"
|
||||
user.is_email_verified = True
|
||||
user.is_mobile_verified = True
|
||||
user.is_staff = staff
|
||||
user.is_superuser = staff
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
return user
|
||||
|
||||
|
||||
student = fixture_user("bundle0_student", "09198000111")
|
||||
staff = fixture_user("bundle0_staff", "09198000112", staff=True)
|
||||
|
||||
for slug, title, price, capacity in (
|
||||
("bundle0-free", "Bundle 0 Free Event", 0, 20),
|
||||
("bundle0-full", "Bundle 0 Full Event", 0, 0),
|
||||
("bundle0-paid", "Bundle 0 Paid Event", 50000, 20),
|
||||
):
|
||||
Event.objects.update_or_create(
|
||||
slug=slug,
|
||||
defaults={
|
||||
"title": title,
|
||||
"description": "Local baseline event for browser review.",
|
||||
"start_time": now + timedelta(days=7),
|
||||
"end_time": now + timedelta(days=7, hours=2),
|
||||
"registration_start_date": now - timedelta(days=1),
|
||||
"registration_end_date": now + timedelta(days=6),
|
||||
"status": Event.StatusChoices.PUBLISHED,
|
||||
"price": price,
|
||||
"capacity": capacity,
|
||||
},
|
||||
)
|
||||
|
||||
Post.objects.update_or_create(
|
||||
slug="bundle0-article",
|
||||
defaults={
|
||||
"title": "Bundle 0 Article",
|
||||
"content": "# Local baseline article\n\nA sample article for the browser review.",
|
||||
"author": staff,
|
||||
"status": Post.StatusChoices.PUBLISHED,
|
||||
"published_at": now,
|
||||
},
|
||||
)
|
||||
|
||||
print("Created isolated student, staff, free/full/paid events, and article fixtures.")
|
||||
Reference in New Issue
Block a user