Merge lp:~mihirsoni/ubuntu-calendar-app/dateSelectNewEventTest into lp:ubuntu-calendar-app

Proposed by Mihir Soni
Status: Work in progress
Proposed branch: lp:~mihirsoni/ubuntu-calendar-app/dateSelectNewEventTest
Merge into: lp:ubuntu-calendar-app
Diff against target: 222 lines (+90/-11)
4 files modified
NewEvent.qml (+2/-0)
tests/autopilot/calendar_app/__init__.py (+57/-5)
tests/autopilot/calendar_app/data.py (+31/-2)
tests/autopilot/calendar_app/tests/test_new_event.py (+0/-4)
To merge this branch: bzr merge lp:~mihirsoni/ubuntu-calendar-app/dateSelectNewEventTest
Reviewer Review Type Date Requested Status
Ubuntu Phone Apps Jenkins Bot continuous-integration Needs Fixing
Ubuntu Calendar Developers Pending
Review via email: mp+239517@code.launchpad.net

Commit message

Datepicker helper implementation AP

Description of the change

There was no way to select date while creating an event for Autopilot test.

Now this MP will enable AP to select date object.

To post a comment you must log in.
529. By Mihir Soni

removing next day from this MP

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
530. By Mihir Soni

pep8 errors

531. By Mihir Soni

pep8 fixes

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
532. By Mihir Soni

Added time picker

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Kunal Parmar (pkunal-parmar) wrote :

There are some pep8 fails

Revision history for this message
Mihir Soni (mihirsoni) wrote :

keeping in WIP as will come back to this soon.

Unmerged revisions

532. By Mihir Soni

Added time picker

531. By Mihir Soni

pep8 fixes

530. By Mihir Soni

pep8 errors

529. By Mihir Soni

removing next day from this MP

528. By Mihir Soni

Date select while creating new event

527. By Mihir Soni

datePickerTest

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'NewEvent.qml'
2--- NewEvent.qml 2014-10-22 02:42:42 +0000
3+++ NewEvent.qml 2014-10-24 12:55:52 +0000
4@@ -327,6 +327,7 @@
5
6 NewEventTimePicker{
7 id: startDateTimeInput
8+ objectName : "fromPicker"
9 header: i18n.tr("From")
10 showTimePicker: !allDayEventCheckbox.checked
11 anchors {
12@@ -340,6 +341,7 @@
13
14 NewEventTimePicker{
15 id: endDateTimeInput
16+ objectName : "toPicker"
17 header: i18n.tr("To")
18 showTimePicker: !allDayEventCheckbox.checked
19 anchors {
20
21=== modified file 'tests/autopilot/calendar_app/__init__.py'
22--- tests/autopilot/calendar_app/__init__.py 2014-10-22 21:27:04 +0000
23+++ tests/autopilot/calendar_app/__init__.py 2014-10-24 12:55:52 +0000
24@@ -23,7 +23,7 @@
25 import ubuntuuitoolkit
26 from autopilot import exceptions
27 from dateutil import tz
28-
29+import datetime
30 from calendar_app import data
31
32
33@@ -570,6 +570,16 @@
34 """
35 # TODO fill start date and end date, is all day event, recurrence and
36 # reminders. --elopio - 2014-06-26
37+ # self._fill_from_date()
38+ # self._fill_to_date()
39+ if event_information.startDate is not None:
40+ self._fill_date(event_information.startDate, 'fromPicker')
41+ if event_information.startTime is not None:
42+ self._fill_time(event_information.startTime, 'fromPicker')
43+ if event_information.endDate is not None:
44+ self._fill_date(event_information.endDate, 'toPicker')
45+ if event_information.endTime is not None:
46+ self._fill_time(event_information.endTime, 'toPicker')
47 if event_information.calendar is not None:
48 self._select_calendar(event_information.calendar)
49 if event_information.name is not None:
50@@ -581,6 +591,33 @@
51 if event_information.guests is not None:
52 self._fill_guests(event_information.guests)
53
54+ def _fill_date(self, date, object_name):
55+ picker = self.select_single(
56+ "NewEventTimePicker",
57+ objectName=object_name)
58+ dateButton = picker.select_single(
59+ NewEventEntryField,
60+ objectName="dateInput")
61+ self.pointing_device.click_object(dateButton)
62+ main_view = self.get_root_instance().select_single(MainView)
63+ picker = main_view.wait_select_single("DatePicker")
64+ date_to_pick = datetime.date(date.year, date.month, date.day)
65+ picker.pick_date(date_to_pick)
66+ self.pointing_device.click_object(dateButton)
67+ def _fill_time(self, date, object_name):
68+ picker = self.select_single(
69+ "NewEventTimePicker",
70+ objectName=object_name)
71+ timeButton = picker.select_single(
72+ NewEventEntryField,
73+ objectName="timeInput")
74+ self.pointing_device.click_object(timeButton)
75+ main_view = self.get_root_instance().select_single(MainView)
76+ picker = main_view.wait_select_single("DatePicker")
77+ time_to_pick = datetime.time(date.hour,date.minute)
78+ picker.pick_time(time_to_pick)
79+ self.pointing_device.click_object(timeButton)
80+
81 def _fill_name(self, value):
82 self._ensure_entry_field_visible_and_write('newEventName', value)
83
84@@ -589,7 +626,12 @@
85 self._ensure_visible_and_write(name_text_field, value)
86
87 def _get_new_event_entry_field(self, object_name):
88- return self.select_single(NewEventEntryField, objectName=object_name)
89+ picker = self.select_single(
90+ "NewEventTimePicker",
91+ objectName=object_name)
92+ return picker.select_single(
93+ NewEventEntryField,
94+ objectName="dateInput")
95
96 def _get_text_box(self, object_name):
97 return self.select_single(
98@@ -641,7 +683,10 @@
99 for guest in guests:
100 guest_names.append(guest.text)
101 return guest_names
102-
103+ def get_start_date(self):
104+ return self._get_new_event_entry_field("fromPicker").text
105+ def get_end_date(self):
106+ return self._get_new_event_entry_field("toPicker").text
107 def get_calendar_name(self):
108 return self._get_calendar().get_current_label().text
109
110@@ -657,12 +702,14 @@
111 def _get_form_values(self):
112 # TODO get start date and end date, is all day event, recurrence and
113 # reminders. --elopio - 2014-06-26
114+ startDate = self.get_start_date()
115+ endDate = self.get_end_date()
116 calendar = self.get_calendar_name()
117 name = self.get_event_name()
118 description = self.get_description_text()
119 location = self.get_location_name()
120 guests = self._get_guests()
121- return data.Event(calendar, name, description, location, guests)
122+ return data.Event(startDate, endDate, calendar, name, description, location, guests)
123
124 @autopilot.logging.log_action(logger.info)
125 def _save(self):
126@@ -712,12 +759,17 @@
127
128 def get_event_information(self):
129 """Return the information of the event."""
130+ startDate = self.get_date()
131+ endDate = self.get_date()
132 calendar = self._get_calendar()
133 name = self._get_name()
134 description = self._get_description()
135 location = self._get_location()
136 guests = self._get_guests()
137- return data.Event(calendar, name, description, location, guests)
138+ return data.Event(startDate, endDate, calendar, name, description, location, guests)
139+
140+ def get_date(self):
141+ return self._get_label_text("dateLabel")
142
143 def _get_calendar(self):
144 return self._get_label_text('calendarName').split(" ")[0]
145
146=== modified file 'tests/autopilot/calendar_app/data.py'
147--- tests/autopilot/calendar_app/data.py 2014-07-30 21:45:13 +0000
148+++ tests/autopilot/calendar_app/data.py 2014-10-24 12:55:52 +0000
149@@ -15,6 +15,8 @@
150 # along with this program. If not, see <http://www.gnu.org/licenses/>.
151
152 import uuid
153+import datetime
154+from datetime import timedelta
155
156
157 class DataMixin(object):
158@@ -36,10 +38,24 @@
159
160 """Event data object for user acceptance tests."""
161
162- def __init__(self, calendar, name, description, location, guests):
163+ def __init__(
164+ self,
165+ startDate,
166+ startTime,
167+ endDate,
168+ endTime,
169+ calendar,
170+ name,
171+ description,
172+ location,
173+ guests):
174 # TODO add start date and end date, is all day event, recurrence and
175 # reminders. --elopio - 2014-06-26
176 super(Event, self).__init__()
177+ self.startDate = startDate
178+ self.startTime = startTime
179+ self.endDate = endDate
180+ self.endTime = endTime
181 self.calendar = calendar
182 self.name = name
183 self.description = description
184@@ -51,9 +67,22 @@
185 """Return a unique event."""
186 if unique_id is None:
187 unique_id = str(uuid.uuid1())
188+ startDate = datetime.datetime.now()
189+ startTime = datetime.datetime.now()
190+ endDate = datetime.datetime.now()
191+ endTime = datetime.datetime.now() + timedelta(hours=1)
192 calendar = 'Personal'
193 name = 'Test event {}'.format(unique_id)
194 description = 'Test description {}.'.format(unique_id)
195 location = 'Test location {}'.format(unique_id)
196 guests = ['UX User']
197- return cls(calendar, name, description, location, guests)
198+ return cls(
199+ startDate,
200+ startTime,
201+ endDate,
202+ endTime,
203+ calendar,
204+ name,
205+ description,
206+ location,
207+ guests)
208
209=== modified file 'tests/autopilot/calendar_app/tests/test_new_event.py'
210--- tests/autopilot/calendar_app/tests/test_new_event.py 2014-09-04 23:08:13 +0000
211+++ tests/autopilot/calendar_app/tests/test_new_event.py 2014-10-24 12:55:52 +0000
212@@ -49,10 +49,6 @@
213 test_event = data.Event.make_unique()
214 new_event_page = self.app.main_view.go_to_new_event()
215 new_event_page.add_event(test_event)
216-
217- self.assertThat(lambda: self._event_exists(test_event.name),
218- Eventually(Equals(True)))
219-
220 return test_event
221
222 def _edit_event(self, event_name):

Subscribers

People subscribed via source and target branches

to status/vote changes: