Merge lp:~nskaggs/ubuntu-calendar-app/fix-test-timing-issues into lp:ubuntu-calendar-app

Proposed by Nicholas Skaggs
Status: Merged
Approved by: Nicholas Skaggs
Approved revision: 184
Merged at revision: 181
Proposed branch: lp:~nskaggs/ubuntu-calendar-app/fix-test-timing-issues
Merge into: lp:ubuntu-calendar-app
Diff against target: 295 lines (+67/-43)
9 files modified
MonthView.qml (+1/-0)
WeekView.qml (+1/-0)
YearView.qml (+1/-0)
calendar.qml (+3/-2)
tests/autopilot/calendar_app/emulators.py (+18/-18)
tests/autopilot/calendar_app/tests/test_dayview.py (+6/-1)
tests/autopilot/calendar_app/tests/test_monthview.py (+24/-10)
tests/autopilot/calendar_app/tests/test_weekview.py (+9/-9)
tests/autopilot/calendar_app/tests/test_yearview.py (+4/-3)
To merge this branch: bzr merge lp:~nskaggs/ubuntu-calendar-app/fix-test-timing-issues
Reviewer Review Type Date Requested Status
Sergio Schvezov (community) Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Ubuntu Calendar Developers Pending
Review via email: mp+201120@code.launchpad.net

Commit message

Fix timing issues on slower devices
Standardize qml files a bit
Add setup to monthview tests

Description of the change

Fix timing issues on slower devices
Standardize qml files a bit
Add setup to monthview tests

also added older exploratory changes from lp:~nskaggs/ubuntu-calendar-app/increase-swipe-size

To post a comment you must log in.
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Sergio Schvezov (sergiusens) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'MonthView.qml'
2--- MonthView.qml 2013-09-16 14:04:01 +0000
3+++ MonthView.qml 2014-01-09 23:33:02 +0000
4@@ -5,6 +5,7 @@
5
6 Page {
7 id: monthViewPage
8+ objectName: "MonthView"
9
10 property var currentMonth: DateExt.today();
11
12
13=== modified file 'WeekView.qml'
14--- WeekView.qml 2013-11-26 04:04:12 +0000
15+++ WeekView.qml 2014-01-09 23:33:02 +0000
16@@ -5,6 +5,7 @@
17
18 Column {
19 id: root
20+ objectName: "WeekView"
21
22 property var dayStart: new Date();
23 property var firstDay: dayStart.weekStart(Qt.locale().firstDayOfWeek);
24
25=== modified file 'YearView.qml'
26--- YearView.qml 2013-10-17 13:56:56 +0000
27+++ YearView.qml 2014-01-09 23:33:02 +0000
28@@ -5,6 +5,7 @@
29
30 PathViewBase {
31 id: root
32+ objectName: "YearView"
33
34 property var currentYear: DateExt.today();
35
36
37=== modified file 'calendar.qml'
38--- calendar.qml 2013-10-29 20:55:31 +0000
39+++ calendar.qml 2014-01-09 23:33:02 +0000
40@@ -179,8 +179,8 @@
41 }
42 } // End of else if (starttime)
43 else {
44- // Due to bug #1231558 {if (args.defaultArgument.at(0))} is always true
45- // After the fix we can delete this else
46+ // Due to bug #1231558 {if (args.defaultArgument.at(0))} is always true
47+ // After the fix we can delete this else
48 tabs.selectedTabIndex= 1;
49 }
50 } // End of if about args.values
51@@ -253,6 +253,7 @@
52 }
53 Tab {
54 id: monthTab
55+ objectName: "monthTab"
56 title: i18n.tr("Month")
57 page: MonthView{
58 anchors.fill: parent
59
60=== modified file 'tests/autopilot/calendar_app/emulators.py'
61--- tests/autopilot/calendar_app/emulators.py 2013-11-22 21:22:27 +0000
62+++ tests/autopilot/calendar_app/emulators.py 2014-01-09 23:33:02 +0000
63@@ -18,19 +18,19 @@
64 """
65
66 def get_event_view(self):
67- return self.select_single("EventView")
68+ return self.wait_select_single("EventView")
69
70 def get_month_view(self):
71- return self.select_single("MonthView")
72+ return self.wait_select_single("MonthView")
73
74 def get_year_view(self):
75- return self.select_single("YearView")
76+ return self.wait_select_single("YearView")
77
78 def get_day_view(self):
79- return self.select_single("DayView")
80+ return self.wait_select_single("DayView")
81
82 def get_week_view(self):
83- return self.select_single("WeekView")
84+ return self.wait_select_single("WeekView")
85
86 def get_label_with_text(self, text, root=None):
87 if root is None:
88@@ -49,28 +49,28 @@
89
90 def get_new_event_name_input_box(self):
91 new_event = self.get_new_event()
92- return new_event.select_single("NewEventEntryField",
93- objectName="newEventName")
94+ return new_event.wait_select_single("NewEventEntryField",
95+ objectName="newEventName")
96
97 def get_event_start_time_field(self):
98 new_event = self.get_new_event()
99- return new_event.select_single("NewEventEntryField",
100- objectName="startTimeInput")
101+ return new_event.wait_select_single("NewEventEntryField",
102+ objectName="startTimeInput")
103
104 def get_event_end_time_field(self):
105 new_event = self.get_new_event()
106- return new_event.select_single("NewEventEntryField",
107- objectName="endTimeInput")
108+ return new_event.wait_select_single("NewEventEntryField",
109+ objectName="endTimeInput")
110
111 def get_event_location_field(self):
112 new_event = self.get_new_event()
113- return new_event.select_single("NewEventEntryField",
114- objectName="eventLocationInput")
115+ return new_event.wait_select_single("NewEventEntryField",
116+ objectName="eventLocationInput")
117
118 def get_event_people_field(self):
119 new_event = self.get_new_event()
120- return new_event.select_single("NewEventEntryField",
121- objectName="eventPeopleInput")
122+ return new_event.wait_select_single("NewEventEntryField",
123+ objectName="eventPeopleInput")
124
125 def get_time_picker(self):
126 try:
127@@ -78,7 +78,7 @@
128 except dbus.StateNotFoundError:
129 return None
130
131- def swipe_view(self, direction, view, x_pad=0.35):
132+ def swipe_view(self, direction, view, x_pad=0.15):
133 """Swipe the given view to left or right.
134
135 Args:
136@@ -97,9 +97,9 @@
137 self.pointing_device.drag(x_start, y_line, x_stop, y_line)
138
139 def get_year(self, component):
140- return int(component.select_single(
141+ return int(component.wait_select_single(
142 "Label", objectName="yearLabel").text)
143
144 def get_month_name(self, component):
145- return component.select_single(
146+ return component.wait_select_single(
147 "Label", objectName="monthLabel").text
148
149=== modified file 'tests/autopilot/calendar_app/tests/test_dayview.py'
150--- tests/autopilot/calendar_app/tests/test_dayview.py 2013-11-07 21:01:38 +0000
151+++ tests/autopilot/calendar_app/tests/test_dayview.py 2014-01-09 23:33:02 +0000
152@@ -75,7 +75,12 @@
153 now = datetime.datetime.now()
154
155 for i in xrange(1, 5):
156- self.main_view.swipe_view(direction, self.day_view, x_pad=0.15)
157+ #prevent timing issues with swiping
158+ old_day = self.day_view.currentDay.datetime
159+ self.main_view.swipe_view(direction, self.day_view)
160+ self.assertThat(lambda: self.day_view.currentDay.datetime,
161+ Eventually(NotEquals(old_day)))
162+
163 current_day = self.day_view.currentDay.datetime
164
165 expected_day = (now + datetime.timedelta(
166
167=== modified file 'tests/autopilot/calendar_app/tests/test_monthview.py'
168--- tests/autopilot/calendar_app/tests/test_monthview.py 2013-11-14 20:55:12 +0000
169+++ tests/autopilot/calendar_app/tests/test_monthview.py 2014-01-09 23:33:02 +0000
170@@ -10,7 +10,7 @@
171 from __future__ import absolute_import
172
173 from autopilot.matchers import Eventually
174-from testtools.matchers import Equals
175+from testtools.matchers import Equals, NotEquals
176
177 import math
178
179@@ -22,31 +22,45 @@
180
181 class TestMonthView(CalendarTestCase):
182
183- def get_currentDayStart(self):
184- month_view = self.main_view.get_month_view()
185- return month_view.currentMonth.datetime
186+ def setUp(self):
187+ super(TestMonthView, self).setUp()
188+ self.assertThat(self.main_view.visible, Eventually(Equals(True)))
189+ self.main_view.switch_to_tab("monthTab")
190+
191+ self.assertThat(
192+ self.main_view.get_month_view, Eventually(NotEquals(None)))
193+
194+ self.month_view = self.main_view.get_month_view()
195
196 def change_month(self, delta):
197 month_view = self.main_view.get_month_view()
198 sign = int(math.copysign(1, delta))
199
200 for _ in range(abs(delta)):
201- before = self.get_currentDayStart()
202+ before = month_view.currentMonth.datetime
203+
204+ #prevent timing issues with swiping
205+ old_month = month_view.currentMonth.datetime
206 self.main_view.swipe_view(sign, month_view)
207+ self.assertThat(lambda: month_view.currentMonth.datetime,
208+ Eventually(NotEquals(old_month)))
209+
210 after = before + relativedelta(months=sign)
211
212- self.assertThat(lambda: self.get_currentDayStart().month,
213+ self.assertThat(lambda:
214+ self.month_view.currentMonth.datetime.month,
215 Eventually(Equals(after.month)))
216- self.assertThat(lambda: self.get_currentDayStart().year,
217+ self.assertThat(lambda:
218+ self.month_view.currentMonth.datetime.year,
219 Eventually(Equals(after.year)))
220
221 def _assert_today(self):
222 today = datetime.today()
223- self.assertThat(lambda: self.get_currentDayStart().day,
224+ self.assertThat(lambda: self.month_view.currentMonth.datetime.day,
225 Eventually(Equals(today.day)))
226- self.assertThat(lambda: self.get_currentDayStart().month,
227+ self.assertThat(lambda: self.month_view.currentMonth.datetime.month,
228 Eventually(Equals(today.month)))
229- self.assertThat(lambda: self.get_currentDayStart().year,
230+ self.assertThat(lambda: self.month_view.currentMonth.datetime.year,
231 Eventually(Equals(today.year)))
232
233 def _test_go_to_today(self, delta):
234
235=== modified file 'tests/autopilot/calendar_app/tests/test_weekview.py'
236--- tests/autopilot/calendar_app/tests/test_weekview.py 2013-11-26 06:19:54 +0000
237+++ tests/autopilot/calendar_app/tests/test_weekview.py 2014-01-09 23:33:02 +0000
238@@ -33,20 +33,20 @@
239 self.week_view = self.main_view.get_week_view()
240
241 def _change_week(self, direction):
242- #TODO: fix this locale issue. The lab needs a monday start date
243- #http://bugs.python.org/issue17659
244- #weekview has firstDate property we can use instead
245- #uses unix timestamp of first day of current week @ 5 am UTC
246-
247 first_dow = self._get_first_day_of_week()
248
249- self.main_view.swipe_view(direction, self.week_view, x_pad=0.15)
250- day_start = self.week_view.dayStart.datetime
251+ #prevent timing issues with swiping
252+ old_day = self.week_view.dayStart.datetime
253+ self.main_view.swipe_view(direction, self.week_view)
254+ self.assertThat(lambda: self.week_view.dayStart.datetime,
255+ Eventually(NotEquals(old_day)))
256+
257+ new_day_start = self.week_view.dayStart.datetime
258
259 expected_day_start = first_dow + datetime.timedelta(
260 days=(7 * direction))
261
262- self.assertThat(day_start.day, Equals(expected_day_start.day))
263+ self.assertThat(new_day_start.day, Equals(expected_day_start.day))
264
265 def _get_days_of_week(self):
266 #sort based on text value of the day
267@@ -96,7 +96,7 @@
268 #set the start of week
269 if date.day != firstDay.day:
270 day_start = date - diff
271- logger.debug("Setting day_start %s to " % firstDay.day)
272+ logger.debug("Setting day_start to %s" % firstDay.day)
273 else:
274 day_start = date
275 logger.debug("Using today as day_start %s" % date)
276
277=== modified file 'tests/autopilot/calendar_app/tests/test_yearview.py'
278--- tests/autopilot/calendar_app/tests/test_yearview.py 2013-11-16 22:17:37 +0000
279+++ tests/autopilot/calendar_app/tests/test_yearview.py 2014-01-09 23:33:02 +0000
280@@ -88,11 +88,12 @@
281 current_year = datetime.now().year
282
283 for i in xrange(1, how_many):
284- self.main_view.swipe_view(direction, self.year_view, x_pad=0.15)
285- selected_year = self.year_view.currentYear.year
286+ #prevent timing issues with swiping
287+ self.main_view.swipe_view(direction, self.year_view)
288
289 self.assertThat(
290- selected_year, Equals(current_year + (i * direction)))
291+ lambda: self.year_view.currentYear.year,
292+ Eventually(Equals(current_year + (i * direction))))
293
294 def assert_current_year_is_default_one(self, month_component):
295 self.assertThat(self.main_view.get_year(month_component),

Subscribers

People subscribed via source and target branches

to status/vote changes: