@@ -89,15 +89,23 @@ def test_edit_meeting_schedule(self):
8989 type_id = 'regular' ,
9090 location = room2 ,
9191 duration = datetime .timedelta (hours = 2 ),
92- time = slot1 .time - datetime .timedelta (seconds = 10 * 60 ),
92+ time = slot1 .time - datetime .timedelta (minutes = 10 ),
9393 )
9494
95+ slot3 = TimeSlot .objects .create (
96+ meeting = meeting ,
97+ type_id = 'regular' ,
98+ location = room2 ,
99+ duration = datetime .timedelta (hours = 2 ),
100+ time = max (slot1 .end_time (), slot2 .end_time ()) + datetime .timedelta (minutes = 10 ),
101+ )
102+
95103 s1 , s2 = Session .objects .filter (meeting = meeting , type = 'regular' )
96104 s2 .requested_duration = slot2 .duration + datetime .timedelta (minutes = 10 )
97105 s2 .save ()
98106 SchedTimeSessAssignment .objects .filter (session = s1 ).delete ()
99107
100- s2_b = Session .objects .create (meeting = meeting , group = s2 .group , attendees = 10 , requested_duration = datetime .timedelta (minutes = 60 ), type_id = 'regular' )
108+ s2b = Session .objects .create (meeting = meeting , group = s2 .group , attendees = 10 , requested_duration = datetime .timedelta (minutes = 60 ), type_id = 'regular' )
101109
102110 Constraint .objects .create (
103111 meeting = meeting ,
@@ -124,7 +132,7 @@ def test_edit_meeting_schedule(self):
124132 # deselect
125133 self .driver .find_element_by_css_selector ('.scheduling-panel' ).click ()
126134
127- self .assertEqual (self . driver . find_elements_by_css_selector ('.session-info-container . title' ), [])
135+ self .assertEqual (session_info_container . find_elements_by_css_selector (". title" ), [])
128136
129137 # unschedule
130138
@@ -150,19 +158,19 @@ def test_edit_meeting_schedule(self):
150158 self .assertEqual (list (SchedTimeSessAssignment .objects .filter (session = s2 , schedule = schedule )), [])
151159
152160 # sorting unassigned
153- sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2_b ], key = lambda s : (s .group .acronym , s .requested_duration , s .pk ))]
161+ sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2b ], key = lambda s : (s .group .acronym , s .requested_duration , s .pk ))]
154162 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=name]' ).click ()
155163 self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{} + #session{}' .format (* sorted_pks )))
156164
157- sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2_b ], key = lambda s : (s .group .parent .acronym , s .group .acronym , s .requested_duration , s .pk ))]
165+ sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2b ], key = lambda s : (s .group .parent .acronym , s .group .acronym , s .requested_duration , s .pk ))]
158166 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=parent]' ).click ()
159167 self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{}' .format (* sorted_pks )))
160168
161- sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2_b ], key = lambda s : (s .requested_duration , s .group .parent .acronym , s .group .acronym , s .pk ))]
169+ sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2b ], key = lambda s : (s .requested_duration , s .group .parent .acronym , s .group .acronym , s .pk ))]
162170 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=duration]' ).click ()
163171 self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{}' .format (* sorted_pks )))
164172
165- sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2_b ], key = lambda s : (int (bool (s .comments )), s .group .parent .acronym , s .group .acronym , s .requested_duration , s .pk ))]
173+ sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2b ], key = lambda s : (int (bool (s .comments )), s .group .parent .acronym , s .group .acronym , s .requested_duration , s .pk ))]
166174 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=comments]' ).click ()
167175 self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{}' .format (* sorted_pks )))
168176
@@ -174,6 +182,15 @@ def test_edit_meeting_schedule(self):
174182 assignment = SchedTimeSessAssignment .objects .get (session = s2 , schedule = schedule )
175183 self .assertEqual (assignment .timeslot , slot1 )
176184
185+ # timeslot constraint hints when selected
186+ s1_element = self .driver .find_element_by_css_selector ('#session{}' .format (s1 .pk ))
187+ s1_element .click ()
188+
189+ # violated due to constraints
190+ self .assertTrue (self .driver .find_elements_by_css_selector ('#timeslot{}.would-violate-hint' .format (slot1 .pk )))
191+ # violated due to missing capacity
192+ self .assertTrue (self .driver .find_elements_by_css_selector ('#timeslot{}.would-violate-hint' .format (slot3 .pk )))
193+
177194 # reschedule
178195 self .driver .execute_script ("jQuery('#session{}').simulateDragDrop({{dropTarget: '#timeslot{} .drop-target'}});" .format (s2 .pk , slot2 .pk ))
179196
@@ -189,9 +206,7 @@ def test_edit_meeting_schedule(self):
189206 self .assertTrue (self .driver .find_elements_by_css_selector ('#timeslot{}.overfull' .format (slot2 .pk )))
190207
191208 # constraint hints
192- s1_element = self .driver .find_element_by_css_selector ('#session{}' .format (s1 .pk ))
193209 s1_element .click ()
194-
195210 constraint_element = s2_element .find_element_by_css_selector (".constraints span[data-sessions=\" {}\" ].would-violate-hint" .format (s1 .pk ))
196211 self .assertTrue (constraint_element .is_displayed ())
197212
0 commit comments