Files
VacatureRadar/tests/unit/test_feedback_learning.py
T
Jens a4eced8be5
deploy / deploy (push) Canceled after 0s
Fix release blockers and deployment build
2026-07-21 21:22:29 +02:00

36 lines
1.4 KiB
Python

from __future__ import annotations
from apps.jobs.models import Feedback
from apps.jobs.services.feedback import record_feedback
def test_learning_signals_wait_for_min_samples(profile, job, user):
first = record_feedback(user=user, job=job, action=Feedback.Action.INTERESTING)
second = record_feedback(user=user, job=job, action=Feedback.Action.INTERESTING)
first_metadata = first.metadata.get("learning", {})
second_metadata = second.metadata.get("learning", {})
assert first_metadata.get("status") == "queued"
assert first_metadata.get("reason_code") == "positive_feedback"
assert second_metadata.get("status") == "applied"
profile.refresh_from_db()
assert profile.weights["content"] == 26.0
def test_learning_skip_for_implicit_hide(profile, job, user):
feedback = record_feedback(user=user, job=job, action=Feedback.Action.HIDE)
metadata = feedback.metadata.get("learning", {})
assert metadata["status"] == "queued"
assert metadata["reason_code"] == "implicit_hide_no_reason"
profile.refresh_from_db()
assert profile.weights["content"] == 25.0
def test_learning_marks_explicit_title_hide_as_nonlearning(profile, job, user):
feedback = record_feedback(
user=user, job=job, action=Feedback.Action.HIDE, reason="Titel past niet bij mij"
)
metadata = feedback.metadata.get("learning", {})
assert metadata["status"] == "queued"
assert metadata["reason_code"] == "non_learning_title"