@@ -97,6 +97,8 @@ def test_edit_meeting_schedule(self):
9797 s2 .save ()
9898 SchedTimeSessAssignment .objects .filter (session = s1 ).delete ()
9999
100+ s2_b = Session .objects .create (meeting = meeting , group = s2 .group , attendees = 10 , requested_duration = datetime .timedelta (minutes = 60 ), type_id = 'regular' )
101+
100102 Constraint .objects .create (
101103 meeting = meeting ,
102104 source = s1 .group ,
@@ -109,17 +111,18 @@ def test_edit_meeting_schedule(self):
109111 self .driver .get (url )
110112
111113 q = PyQuery (self .driver .page_source )
112- self .assertEqual (len (q ('.session' )), 2 )
114+ self .assertEqual (len (q ('.session' )), 3 )
113115
114116 # select - show session info
115117 s2_element = self .driver .find_element_by_css_selector ('#session{}' .format (s2 .pk ))
116118 s2_element .click ()
117119
118- session_info_element = self .driver .find_element_by_css_selector ('.session-info-container .title' )
119- self .assertIn (s2 .group .acronym , session_info_element .text )
120+ session_info_container = self .driver .find_element_by_css_selector ('.session-info-container' )
121+ self .assertIn (s2 .group .acronym , session_info_container .find_element_by_css_selector (".title" ).text )
122+ self .assertEqual (session_info_container .find_element_by_css_selector (".other-session .time" ).text , "not yet scheduled" )
120123
121124 # deselect
122- self .driver .find_element_by_css_selector ('.session-info-container ' ).click ()
125+ self .driver .find_element_by_css_selector ('.scheduling-panel ' ).click ()
123126
124127 self .assertEqual (self .driver .find_elements_by_css_selector ('.session-info-container .title' ), [])
125128
@@ -147,19 +150,19 @@ def test_edit_meeting_schedule(self):
147150 self .assertEqual (list (SchedTimeSessAssignment .objects .filter (session = s2 , schedule = schedule )), [])
148151
149152 # sorting unassigned
150- sorted_pks = [s .pk for s in sorted ([s1 , s2 ], key = lambda s : s .group .acronym )]
153+ sorted_pks = [s .pk for s in sorted ([s1 , s2 , s2_b ], key = lambda s : ( s .group .acronym , s . requested_duration , s . pk ) )]
151154 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=name]' ).click ()
152- self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{}' .format (* sorted_pks )))
155+ self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{} + #session{} ' .format (* sorted_pks )))
153156
154- sorted_pks = [s .pk for s in sorted ([s1 , s2 ], key = lambda s : (s .group .parent .acronym , s .group .acronym ))]
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 ))]
155158 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=parent]' ).click ()
156159 self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{}' .format (* sorted_pks )))
157160
158- sorted_pks = [s .pk for s in sorted ([s1 , s2 ], key = lambda s : (s .requested_duration , s .group .parent .acronym , s .group .acronym ))]
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 ))]
159162 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=duration]' ).click ()
160163 self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{}' .format (* sorted_pks )))
161164
162- sorted_pks = [s .pk for s in sorted ([s1 , s2 ], key = lambda s : (bool (s .comments ), s .group .parent .acronym , s .group .acronym ))]
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 ))]
163166 self .driver .find_element_by_css_selector ('[name=sort_unassigned] option[value=comments]' ).click ()
164167 self .assertTrue (self .driver .find_element_by_css_selector ('.unassigned-sessions .drop-target #session{} + #session{}' .format (* sorted_pks )))
165168
@@ -204,6 +207,16 @@ def test_edit_meeting_schedule(self):
204207 self .assertTrue (s1_element .is_displayed ())
205208 self .driver .find_element_by_css_selector (".session-parent-toggles [value=\" {}\" ]" .format (s1 .group .parent .acronym )).click ()
206209 self .assertTrue (not s1_element .is_displayed ())
210+ self .driver .find_element_by_css_selector (".session-parent-toggles [value=\" {}\" ]" .format (s1 .group .parent .acronym )).click ()
211+ self .assertTrue (s1_element .is_displayed ())
212+
213+ # hide timeslots
214+ self .driver .find_element_by_css_selector (".timeslot-group-toggles button" .format (s1 .group .parent .acronym )).click ()
215+ self .assertTrue (self .driver .find_element_by_css_selector ("#timeslot-group-toggles-modal" ).is_displayed ())
216+ self .driver .find_element_by_css_selector ("#timeslot-group-toggles-modal [value=\" {}\" ]" .format ("ts-group-{}-{}" .format (slot2 .time .strftime ("%Y%m%d-%H%M" ), int (slot2 .duration .total_seconds () / 60 )))).click ()
217+ self .driver .find_element_by_css_selector ("#timeslot-group-toggles-modal [data-dismiss=\" modal\" ]" ).click ()
218+ self .assertTrue (not self .driver .find_element_by_css_selector ("#timeslot-group-toggles-modal" ).is_displayed ())
219+
207220
208221@skipIf (skip_selenium , skip_message )
209222@skipIf (django .VERSION [0 ]== 2 , "Skipping test with race conditions under Django 2" )
0 commit comments