2121"""test_reservation.py - integration test reservation functionalities."""
2222
2323import pyslurm
24+ from pyslurm import ReservationFlags , ReservationReoccurrence
2425from datetime import datetime
2526
2627
@@ -33,6 +34,7 @@ def test_api_calls():
3334 duration = duration ,
3435 users = ["root" ],
3536 node_count = 1 ,
37+ reoccurrence = "DAILY"
3638 )
3739 resv .create ()
3840
@@ -55,6 +57,39 @@ def test_api_calls():
5557 assert resv .duration == 2 * 60 * 24
5658 assert resv .end_time == resv .start_time + (2 * 60 * 60 * 24 )
5759
60+ assert resv .reoccurrence == ReservationReoccurrence .DAILY
61+ assert resv .reoccurrence == "DAILY"
62+ # Can only remove this once the Reservation exists. Setting another
63+ # reoccurrence doesn't work, probably a bug in slurmctld..., because it
64+ # makes no sense why that shouldn't work.
65+ resv .reoccurrence = ReservationReoccurrence .NO
66+ resv .modify ()
67+
68+ resv = pyslurm .Reservation .load ("testing" )
69+ assert resv .reoccurrence == "NO"
70+
71+ resv .flags = ReservationFlags .MAINTENANCE | ReservationFlags .FLEX
72+ resv .modify ()
73+
74+ resv = pyslurm .Reservation .load ("testing" )
75+ assert resv .flags == ReservationFlags .MAINTENANCE | ReservationFlags .FLEX
76+
77+ assert ReservationFlags .PURGE not in resv .flags
78+ resv .purge_time = "2-00:00:00"
79+ resv .modify ()
80+
81+ resv = pyslurm .Reservation .load ("testing" )
82+ assert ReservationFlags .PURGE in resv .flags
83+ assert resv .purge_time == 2 * 60 * 60 * 24
84+
85+ resv .purge_time = "3-00:00:00"
86+ resv .modify ()
87+
88+ resv = pyslurm .Reservation .load ("testing" )
89+ assert ReservationFlags .PURGE in resv .flags
90+ assert resv .purge_time == 3 * 60 * 60 * 24
91+
92+ assert resv .to_dict ()
5893 resv .delete ()
5994 reservations = pyslurm .Reservations .load ()
6095 assert len (reservations ) == 0
0 commit comments