141
142
header.click_action_button('neweventbutton')
142
143
return self.wait_select_single(NewEvent, objectName='newEventPage')
145
@autopilot.logging.log_action(logger.info)
146
def go_to_calendar_choice_popup(self):
147
"""Open the calendar chioce popup.
149
:return: CalendaChoicePopup.
152
header = self.get_header()
153
header.click_action_button('calendarsbutton')
154
return self.wait_select_single(
155
CalendarChoicePopup, objectName="calendarchoicepopup")
144
157
def set_picker(self, field, mode, value):
146
159
self.pointing_device.click_object(field)
161
174
def get_event_view(self, parent_object=None):
162
175
if parent_object is None:
163
176
parent_object = self
164
return parent_object.select_single("EventView")
177
return parent_object.wait_select_single("EventView")
166
179
def get_event_details(self, parent_object=None):
167
180
if parent_object is None:
168
181
parent_object = self
169
return parent_object.select_single(EventDetails,
170
objectName='eventDetails')
182
return parent_object.wait_select_single(EventDetails,
183
objectName='eventDetails')
172
185
def get_month_view(self, parent_object=None):
173
186
if parent_object is None:
174
187
parent_object = self
175
return parent_object.select_single(MonthView,
176
objectName='monthViewPage')
188
return parent_object.wait_select_single(MonthView,
189
objectName='monthViewPage')
178
191
def get_year_view(self, parent_object=None):
179
192
if parent_object is None:
180
193
parent_object = self
181
return parent_object.select_single(YearView, objectName='yearViewPage')
194
return parent_object.wait_select_single(YearView,
195
objectName='yearViewPage')
183
197
def get_day_view(self, parent_object=None):
184
198
if parent_object is None:
185
199
parent_object = self
186
return parent_object.select_single(DayView, objectName='dayViewPage')
200
return parent_object.wait_select_single(DayView,
201
objectName='dayViewPage')
188
203
def get_week_view(self, parent_object=None):
189
204
if parent_object is None:
190
205
parent_object = self
191
return parent_object.select_single(WeekView, objectName='weekViewPage')
206
return parent_object.wait_select_single(WeekView,
207
objectName='weekViewPage')
193
209
def get_agenda_view(self, parent_object=None):
194
210
if parent_object is None:
195
211
parent_object = self
196
return parent_object.select_single(AgendaView, objectName='AgendaView')
212
return parent_object.wait_select_single(AgendaView,
213
objectName='AgendaView')
198
215
def get_label_with_text(self, text, root=None):
275
292
local = utc.astimezone(tz.tzlocal())
295
@autopilot.logging.log_action(logger.info)
296
def get_header(self):
297
return self.wait_select_single(
298
"AppHeader", objectName="MainView_Header")
300
def press_header_todaybutton(self):
301
header = self.get_header()
302
header.click_action_button('todaybutton')
304
@autopilot.logging.log_action(logger.info)
305
def get_color_picker_dialog(self):
306
return self.wait_select_single(
307
"ColorPickerDialog", objectName="colorPickerDialog")
309
@autopilot.logging.log_action(logger.info)
310
def press_header_custombackbutton(self):
311
header = self.get_header()
312
header.click_custom_back_button()
279
315
class YearView(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
427
463
sorteddays.insert(0, day)
428
464
return sorteddays
466
@autopilot.logging.log_action(logger.info)
467
def get_current_headerdatecomponent(self, now):
468
today = datetime.date(now.year, now.month, now.day)
469
header_date_components = self.select_many('HeaderDateComponent')
470
for header in header_date_components:
471
header_date = datetime.date(header.date.datetime.year,
472
header.date.datetime.month,
473
header.date.datetime.day)
474
if header_date == today:
431
478
class MonthView(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
583
630
return event_details_page.edit()
585
632
@autopilot.logging.log_action(logger.info)
586
def get_day_header(self, day=None):
633
def get_timeline_header_component(self, day):
587
634
"""Return the dayheader for a given day. If no day is given,
588
635
return the current day.
590
:param day: A datetime object matching the header
637
:param day: day in date(year, month, day) format
591
638
:return: The day header object
594
641
headers = self.select_many('TimeLineHeaderComponent')
595
642
for header in headers:
596
if header.startDay.datetime == day:
600
# just grab the current day
601
day_header = self.wait_select_single(
602
'TimeLineHeaderComponent', isCurrentItem=True)
605
raise CalendarException('Day Header not found for %s' % day)
643
header_date = date(header.startDay.datetime.year,
644
header.startDay.datetime.month,
645
header.startDay.datetime.day)
646
if header_date == day:
650
raise CalendarException('Day Header not found for %s' % day)
652
@autopilot.logging.log_action(logger.info)
653
def get_timeline_header(self, day):
654
"""Return the dayheader for a given day.
656
:param day: day in date(year, month, day) format
657
:return: The day header object
660
headers = self.select_many('TimeLineHeader')
661
for header in headers:
662
header_date = date(header.startDay.datetime.year,
663
header.startDay.datetime.month,
664
header.startDay.datetime.day)
665
if header_date == day:
669
raise CalendarException('Day Header not found for %s' % day)
671
@autopilot.logging.log_action(logger.info)
672
def get_daylabel(self, today):
673
current_day_header = self.get_timeline_header_component(today)
674
return current_day_header.wait_select_single(
675
'Label', objectName='dayLabel')
677
@autopilot.logging.log_action(logger.info)
678
def get_datelabel(self, today):
679
current_day_header = self.get_timeline_header_component(today)
680
return current_day_header.wait_select_single(
681
'Label', objectName='dateLabel')
683
@autopilot.logging.log_action(logger.info)
684
def get_weeknumer(self, today):
685
current_day_header = self.get_timeline_header(today)
686
return current_day_header.wait_select_single(
687
'Label', objectName='weeknumber')
689
@autopilot.logging.log_action(logger.info)
690
def get_scrollHour(self):
691
return self.wait_select_single(
692
'TimeLineBaseComponent', objectName='DayComponent-0').scrollHour
694
@autopilot.logging.log_action(logger.info)
695
def get_weeknumber(self):
696
return self._get_timeline_base().weekNumber
698
def check_loading_spinnger(self):
699
timelinebasecomponent = self.get_active_timelinebasecomponent()
700
loading_spinner = timelinebasecomponent.wait_select_single(
702
loading_spinner.running.wait_for(False)
704
def _get_timeline_base(self):
705
return self.select_single("TimeLineBaseComponent", isActive=True)
707
@autopilot.logging.log_action(logger.info)
708
def get_active_timelinebasecomponent(self):
709
timelinebase_components = self.select_many(("TimeLineBaseComponent"))
710
for component in timelinebase_components:
711
if component.isActive:
609
715
class AgendaView(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
922
1028
delete_button = self.select_single(
923
1029
'Button', objectName='deleteEventButton')
924
1030
self.pointing_device.click_object(delete_button)
1033
class CalendarChoicePopup(
1034
ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
1036
"""Autopilot helper for the Calendar Choice Popup."""
1038
@autopilot.logging.log_action(logger.debug)
1039
def press_check_box_button(self):
1040
""" press check box button to select or unselect it """
1041
calendar = self._get_calendar()
1042
check_box = calendar.wait_select_single(
1043
"CheckBox", objectName="checkBox")
1044
self.pointing_device.click_object(check_box)
1045
check_box.checked.wait_for(False)
1047
def _get_calendar(self):
1048
calendarItems = self.select_many("Standard", objectName="calendarItem")
1049
for item in calendarItems:
1050
if item.select_single(
1051
"Label", objectName="calendarName").text == "Personal":
1054
@autopilot.logging.log_action(logger.debug)
1055
def get_checkbox_status(self):
1056
""" press check box button to select or unselect it """
1057
calendar = self._get_calendar()
1058
return calendar.wait_select_single(
1059
"CheckBox", objectName="checkBox").checked
1061
@autopilot.logging.log_action(logger.debug)
1062
def get_calendar_color(self):
1063
""" get calendar color """
1064
calendar = self._get_calendar()
1065
return calendar.select_single(
1066
"QQuickRectangle", objectName="calendarColorCode").color
1068
@autopilot.logging.log_action(logger.debug)
1069
def open_color_picker_dialog(self):
1070
""" press color rectangle to open calendar color picker"""
1071
calendar = self._get_calendar()
1072
color_rectangle = calendar.wait_select_single(
1073
"QQuickRectangle", objectName="calendarColorCode")
1074
self.pointing_device.click_object(color_rectangle)
1077
class ColorPickerDialog(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
1078
"""Autopilot helper for the Color Picker Dialog."""
1080
@autopilot.logging.log_action(logger.debug)
1081
def change_calendar_color(self, new_color):
1082
new_color_circle = self.wait_select_single(
1083
"QQuickRectangle", objectName=new_color)
1084
self.pointing_device.click_object(new_color_circle)