35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from datetime import datetime, timezone
|
|
|
|
from app.models import Employee
|
|
from app.services.crawler import _mark_dismissed
|
|
|
|
|
|
def test_mark_dismissed_only_marks_missing_active_employees(db_session):
|
|
db_session.add(
|
|
Employee(
|
|
profile_key="staff:kept",
|
|
canonical_url="https://www.hse.ru/staff/kept",
|
|
status="active",
|
|
first_seen_at=datetime.now(timezone.utc),
|
|
last_seen_at=datetime.now(timezone.utc),
|
|
)
|
|
)
|
|
db_session.add(
|
|
Employee(
|
|
profile_key="staff:gone",
|
|
canonical_url="https://www.hse.ru/staff/gone",
|
|
status="active",
|
|
first_seen_at=datetime.now(timezone.utc),
|
|
last_seen_at=datetime.now(timezone.utc),
|
|
)
|
|
)
|
|
db_session.commit()
|
|
|
|
dismissed = _mark_dismissed(db_session, {"staff:kept"})
|
|
|
|
assert dismissed == 1
|
|
assert db_session.query(Employee).filter_by(profile_key="staff:kept").one().status == "active"
|
|
gone = db_session.query(Employee).filter_by(profile_key="staff:gone").one()
|
|
assert gone.status == "dismissed"
|
|
assert gone.dismissed_at is not None
|