99
1010from applications .choices import ApplicationRoundStatusChoice
1111from reservation_units .models import ReservationUnit
12+ from reservations .choices import ReservationStateChoice
1213from tests .factories import (
1314 ApplicationRoundFactory ,
1415 OriginHaukiResourceFactory ,
@@ -937,6 +938,7 @@ def test__query_reservation_unit_reservable__reservations__own_reservation(graph
937938 begin = _datetime (day = 20 , hour = 10 ),
938939 end = _datetime (day = 20 , hour = 12 ),
939940 reservation_unit = [reservation_unit ],
941+ state = ReservationStateChoice .CREATED ,
940942 )
941943
942944 # 2023-05-20 10:00 - 12:00 (2h)
@@ -964,6 +966,7 @@ def test__query_reservation_unit_reservable__reservations__not_in_common_hierarc
964966 begin = _datetime (day = 20 , hour = 10 ),
965967 end = _datetime (day = 20 , hour = 12 ),
966968 reservation_unit = [reservation_unit_2 ],
969+ state = ReservationStateChoice .CREATED ,
967970 )
968971
969972 # 2023-05-20 10:00 - 12:00 (2h)
@@ -994,6 +997,7 @@ def test__query_reservation_unit_reservable__reservations__in_common_hierarchy__
994997 begin = _datetime (day = 20 , hour = 10 ),
995998 end = _datetime (day = 20 , hour = 12 ),
996999 reservation_unit = [reservation_unit_2 ],
1000+ state = ReservationStateChoice .CREATED ,
9971001 )
9981002
9991003 # 2023-05-20 10:00 - 12:00 (2h)
@@ -1024,6 +1028,7 @@ def test__query_reservation_unit_reservable__reservations__in_common_hierarchy__
10241028 begin = _datetime (day = 20 , hour = 10 ),
10251029 end = _datetime (day = 20 , hour = 12 ),
10261030 reservation_unit = [reservation_unit_2 ],
1031+ state = ReservationStateChoice .CREATED ,
10271032 )
10281033
10291034 # 2023-05-20 10:00 - 12:00 (2h)
@@ -1125,12 +1130,14 @@ def test__query_reservation_unit_reservable__reservations__start_and_end_same_da
11251130 begin = _datetime (year = 2024 , month = 1 , day = 8 , hour = 8 ),
11261131 end = _datetime (year = 2024 , month = 1 , day = 8 , hour = 11 ),
11271132 reservation_unit = [reservation_unit ],
1133+ state = ReservationStateChoice .CREATED ,
11281134 )
11291135 # Monday | 2024-01-08 | 12:00 - 17:00 (5h)
11301136 ReservationFactory .create (
11311137 begin = _datetime (year = 2024 , month = 1 , day = 8 , hour = 12 ),
11321138 end = _datetime (year = 2024 , month = 1 , day = 8 , hour = 17 ),
11331139 reservation_unit = [reservation_unit ],
1140+ state = ReservationStateChoice .CREATED ,
11341141 )
11351142
11361143 # Monday | 2024-01-08 | 08:00 - 20:30 (12.5h)
@@ -1174,6 +1181,7 @@ def test__query_reservation_unit_reservable__reservations__filter_start_time_at_
11741181 begin = _datetime (year = 2024 , month = 1 , day = 9 , hour = 14 ),
11751182 end = _datetime (year = 2024 , month = 1 , day = 9 , hour = 15 , minute = 30 ),
11761183 reservation_unit = [reservation_unit ],
1184+ state = ReservationStateChoice .CREATED ,
11771185 )
11781186
11791187 # Monday | 2024-01-09 | 08:00 - 20:30 (12.5h)
@@ -1199,3 +1207,46 @@ def test__query_reservation_unit_reservable__reservations__filter_start_time_at_
11991207 "isClosed" : False ,
12001208 "firstReservableDatetime" : _datetime (year = 2024 , month = 1 , day = 9 , hour = 15 , minute = 30 ).isoformat (),
12011209 }
1210+
1211+
1212+ @pytest .mark .parametrize (
1213+ "state" ,
1214+ [ReservationStateChoice .CANCELLED , ReservationStateChoice .DENIED ],
1215+ )
1216+ @freezegun .freeze_time (datetime (2024 , 1 , 4 , tzinfo = DEFAULT_TIMEZONE ))
1217+ def test__query_reservation_unit_reservable__reservations__dont_include_cancelled_or_denied_reservations (
1218+ graphql ,
1219+ reservation_unit ,
1220+ state ,
1221+ ):
1222+ reservation_unit .reservation_start_interval = ReservationUnit .RESERVATION_START_INTERVAL_30_MINUTES
1223+ reservation_unit .save ()
1224+
1225+ # Monday | 2024-01-09 | 10:00 - 12:00 (2h)
1226+ ReservationFactory .create (
1227+ begin = _datetime (year = 2024 , month = 1 , day = 9 , hour = 10 ),
1228+ end = _datetime (year = 2024 , month = 1 , day = 9 , hour = 12 ),
1229+ reservation_unit = [reservation_unit ],
1230+ state = state ,
1231+ )
1232+
1233+ # Monday | 2024-01-09 | 10:00 - 20:30 (12.5h)
1234+ ReservableTimeSpanFactory .create (
1235+ resource = reservation_unit .origin_hauki_resource ,
1236+ start_datetime = _datetime (year = 2024 , month = 1 , day = 9 , hour = 10 ),
1237+ end_datetime = _datetime (year = 2024 , month = 1 , day = 9 , hour = 20 ),
1238+ )
1239+
1240+ query = reservation_units_reservable_query (
1241+ reservable_date_start = "2024-01-09" ,
1242+ reservable_date_end = "2024-01-09" ,
1243+ )
1244+
1245+ response = graphql (query )
1246+
1247+ assert response .has_errors is False , response
1248+ assert len (response .edges ) == 1 , response
1249+ assert response .node (0 ) == {
1250+ "isClosed" : False ,
1251+ "firstReservableDatetime" : _datetime (year = 2024 , month = 1 , day = 9 , hour = 10 ).isoformat (),
1252+ }
0 commit comments