Refactor shift constraints in tests to use new constraint classes

- Updated test cases in `test_workers.py` to replace dictionary-based constraints with instances of `PreShiftConstraint`, `PostShiftConstraint`, and `MaxShiftsPerWeekConstraint`.
- Added a new test `test_worker_assign_as_block_preference2` to verify worker preferences for block assignments.
- Marked tests as slow where appropriate to improve test suite performance.
This commit is contained in:
Ross
2025-08-11 13:03:08 +01:00
parent d7bcfce78c
commit 76f3b48c1d
12 changed files with 790 additions and 987 deletions
+4 -4
View File
@@ -1,6 +1,6 @@
import pytest
from rota.shifts import NoWorkers, RotaBuilder, SingleShift, days
from rota.shifts import NoWorkers, RequireRemoteSitePresenceConstraint, RotaBuilder, SingleShift, days
import datetime
from rota.workers import Worker
@@ -34,7 +34,7 @@ class TestRemoteRotas:
workers_required=1,
balance_offset=100,
force_as_block=False,
constraint=[{"name":"require_remote_site_presence_week", "options":("group2", 2)}],
constraints=[RequireRemoteSitePresenceConstraint(site="group2", required_number=2)],
),
)
@@ -70,7 +70,7 @@ class TestRemoteRotas:
workers_required=1,
balance_offset=10,
force_as_block=True,
constraint=[{"name":"require_remote_site_presence_week", "options":("group2", 1)}],
constraints=[RequireRemoteSitePresenceConstraint(site="group2", required_number=1)],
),
SingleShift(
sites=("group1", "group2"), name="b", length= 12.5, days=days[3:],
@@ -130,7 +130,7 @@ class TestRemoteRotas:
workers_required=1,
balance_offset=10,
force_as_block=False,
constraint=[{"name":"require_remote_site_presence_week", "options":("group2", 1)}],
constraints=[RequireRemoteSitePresenceConstraint(site="group2", required_number=1)],
),
SingleShift(
sites=("group1", "group2"), name="b", length= 12.5, days=days[3:],