fix: use local calendar dates in demo seed
Managed validation / full (pull_request) Successful in 3m2s
Managed validation / full (pull_request) Successful in 3m2s
This commit is contained in:
@@ -152,6 +152,7 @@ def seed_demo_environment(user) -> None:
|
|||||||
profile.save(update_fields=["is_active"])
|
profile.save(update_fields=["is_active"])
|
||||||
|
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
|
today = timezone.localdate(now)
|
||||||
workplace_map = {
|
workplace_map = {
|
||||||
"hybrid": JobPosting.Workplace.HYBRID,
|
"hybrid": JobPosting.Workplace.HYBRID,
|
||||||
"remote": JobPosting.Workplace.REMOTE,
|
"remote": JobPosting.Workplace.REMOTE,
|
||||||
@@ -254,7 +255,7 @@ def seed_demo_environment(user) -> None:
|
|||||||
defaults={
|
defaults={
|
||||||
"status": Application.Status.INTERVIEW,
|
"status": Application.Status.INTERVIEW,
|
||||||
"applied_at": now - timedelta(days=6),
|
"applied_at": now - timedelta(days=6),
|
||||||
"follow_up_date": (now + timedelta(days=2)).date(),
|
"follow_up_date": today + timedelta(days=2),
|
||||||
"contact_name": "Sofie Vandael",
|
"contact_name": "Sofie Vandael",
|
||||||
"contact_email": "sofie.vandael@cloudnexus.example",
|
"contact_email": "sofie.vandael@cloudnexus.example",
|
||||||
"notes": "Eerste gesprek gepland. Demo-data.",
|
"notes": "Eerste gesprek gepland. Demo-data.",
|
||||||
@@ -267,7 +268,7 @@ def seed_demo_environment(user) -> None:
|
|||||||
defaults={
|
defaults={
|
||||||
"status": Application.Status.APPLIED,
|
"status": Application.Status.APPLIED,
|
||||||
"applied_at": now - timedelta(days=2),
|
"applied_at": now - timedelta(days=2),
|
||||||
"follow_up_date": (now + timedelta(days=5)).date(),
|
"follow_up_date": today + timedelta(days=5),
|
||||||
"notes": "Sollicitatie verstuurd. Demo-data.",
|
"notes": "Sollicitatie verstuurd. Demo-data.",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -145,15 +145,22 @@ def test_demo_login_logs_in_and_seeds_environment(client):
|
|||||||
assert "minstens één import actief" in sources.content.decode("utf-8")
|
assert "minstens één import actief" in sources.content.decode("utf-8")
|
||||||
|
|
||||||
|
|
||||||
def test_demo_login_is_idempotent(client):
|
def test_demo_login_is_idempotent(client, monkeypatch):
|
||||||
from datetime import timedelta
|
from datetime import UTC, datetime, timedelta
|
||||||
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from apps.jobs.models import Application, JobPosting
|
from apps.jobs.models import Application, JobPosting
|
||||||
|
from apps.jobs.services import demo_seed
|
||||||
from apps.profiles.models import SearchProfile
|
from apps.profiles.models import SearchProfile
|
||||||
from apps.sources.models import MailboxConnection, Source
|
from apps.sources.models import MailboxConnection, Source
|
||||||
|
|
||||||
|
# 22:30 UTC is already the following calendar day in Europe/Brussels.
|
||||||
|
# Freezing this boundary prevents UTC `.date()` calls from creeping back in.
|
||||||
|
near_local_midnight = datetime(2026, 9, 2, 22, 30, tzinfo=UTC)
|
||||||
|
monkeypatch.setattr(demo_seed.timezone, "now", lambda: near_local_midnight)
|
||||||
|
expected_local_day = timezone.localdate(near_local_midnight)
|
||||||
|
|
||||||
client.post(reverse("demo-login"))
|
client.post(reverse("demo-login"))
|
||||||
first = JobPosting.objects.count()
|
first = JobPosting.objects.count()
|
||||||
demo_user = get_user_model().objects.get(username=settings.DEMO_USERNAME)
|
demo_user = get_user_model().objects.get(username=settings.DEMO_USERNAME)
|
||||||
@@ -172,8 +179,8 @@ def test_demo_login_is_idempotent(client):
|
|||||||
job.refresh_from_db()
|
job.refresh_from_db()
|
||||||
application.refresh_from_db()
|
application.refresh_from_db()
|
||||||
assert job.status == JobPosting.Status.ACTIVE
|
assert job.status == JobPosting.Status.ACTIVE
|
||||||
assert job.last_seen.date() == timezone.localdate()
|
assert timezone.localdate(job.last_seen) == expected_local_day
|
||||||
assert application.follow_up_date > timezone.localdate()
|
assert application.follow_up_date > expected_local_day
|
||||||
assert profile.scores.count() == 6
|
assert profile.scores.count() == 6
|
||||||
assert MailboxConnection.objects.filter(user=demo_user, enabled=True).count() == 9
|
assert MailboxConnection.objects.filter(user=demo_user, enabled=True).count() == 9
|
||||||
assert Source.objects.filter(source_type=Source.Type.EMAIL, failure_count=0).count() >= 9
|
assert Source.objects.filter(source_type=Source.Type.EMAIL, failure_count=0).count() >= 9
|
||||||
|
|||||||
Reference in New Issue
Block a user