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
=== modified file 'MonthView.qml'
--- MonthView.qml 2013-09-16 14:04:01 +0000
+++ MonthView.qml 2014-01-09 23:33:02 +0000
@@ -5,6 +5,7 @@
55
6Page {6Page {
7 id: monthViewPage7 id: monthViewPage
8 objectName: "MonthView"
89
9 property var currentMonth: DateExt.today();10 property var currentMonth: DateExt.today();
1011
1112
=== modified file 'WeekView.qml'
--- WeekView.qml 2013-11-26 04:04:12 +0000
+++ WeekView.qml 2014-01-09 23:33:02 +0000
@@ -5,6 +5,7 @@
55
6Column {6Column {
7 id: root7 id: root
8 objectName: "WeekView"
89
9 property var dayStart: new Date();10 property var dayStart: new Date();
10 property var firstDay: dayStart.weekStart(Qt.locale().firstDayOfWeek);11 property var firstDay: dayStart.weekStart(Qt.locale().firstDayOfWeek);
1112
=== modified file 'YearView.qml'
--- YearView.qml 2013-10-17 13:56:56 +0000
+++ YearView.qml 2014-01-09 23:33:02 +0000
@@ -5,6 +5,7 @@
55
6PathViewBase {6PathViewBase {
7 id: root7 id: root
8 objectName: "YearView"
89
9 property var currentYear: DateExt.today();10 property var currentYear: DateExt.today();
1011
1112
=== modified file 'calendar.qml'
--- calendar.qml 2013-10-29 20:55:31 +0000
+++ calendar.qml 2014-01-09 23:33:02 +0000
@@ -179,8 +179,8 @@
179 }179 }
180 } // End of else if (starttime)180 } // End of else if (starttime)
181 else {181 else {
182 // Due to bug #1231558 {if (args.defaultArgument.at(0))} is always true182 // Due to bug #1231558 {if (args.defaultArgument.at(0))} is always true
183 // After the fix we can delete this else183 // After the fix we can delete this else
184 tabs.selectedTabIndex= 1;184 tabs.selectedTabIndex= 1;
185 }185 }
186 } // End of if about args.values186 } // End of if about args.values
@@ -253,6 +253,7 @@
253 }253 }
254 Tab {254 Tab {
255 id: monthTab255 id: monthTab
256 objectName: "monthTab"
256 title: i18n.tr("Month")257 title: i18n.tr("Month")
257 page: MonthView{258 page: MonthView{
258 anchors.fill: parent259 anchors.fill: parent
259260
=== modified file 'tests/autopilot/calendar_app/emulators.py'
--- tests/autopilot/calendar_app/emulators.py 2013-11-22 21:22:27 +0000
+++ tests/autopilot/calendar_app/emulators.py 2014-01-09 23:33:02 +0000
@@ -18,19 +18,19 @@
18 """18 """
1919
20 def get_event_view(self):20 def get_event_view(self):
21 return self.select_single("EventView")21 return self.wait_select_single("EventView")
2222
23 def get_month_view(self):23 def get_month_view(self):
24 return self.select_single("MonthView")24 return self.wait_select_single("MonthView")
2525
26 def get_year_view(self):26 def get_year_view(self):
27 return self.select_single("YearView")27 return self.wait_select_single("YearView")
2828
29 def get_day_view(self):29 def get_day_view(self):
30 return self.select_single("DayView")30 return self.wait_select_single("DayView")
3131
32 def get_week_view(self):32 def get_week_view(self):
33 return self.select_single("WeekView")33 return self.wait_select_single("WeekView")
3434
35 def get_label_with_text(self, text, root=None):35 def get_label_with_text(self, text, root=None):
36 if root is None:36 if root is None:
@@ -49,28 +49,28 @@
4949
50 def get_new_event_name_input_box(self):50 def get_new_event_name_input_box(self):
51 new_event = self.get_new_event()51 new_event = self.get_new_event()
52 return new_event.select_single("NewEventEntryField",52 return new_event.wait_select_single("NewEventEntryField",
53 objectName="newEventName")53 objectName="newEventName")
5454
55 def get_event_start_time_field(self):55 def get_event_start_time_field(self):
56 new_event = self.get_new_event()56 new_event = self.get_new_event()
57 return new_event.select_single("NewEventEntryField",57 return new_event.wait_select_single("NewEventEntryField",
58 objectName="startTimeInput")58 objectName="startTimeInput")
5959
60 def get_event_end_time_field(self):60 def get_event_end_time_field(self):
61 new_event = self.get_new_event()61 new_event = self.get_new_event()
62 return new_event.select_single("NewEventEntryField",62 return new_event.wait_select_single("NewEventEntryField",
63 objectName="endTimeInput")63 objectName="endTimeInput")
6464
65 def get_event_location_field(self):65 def get_event_location_field(self):
66 new_event = self.get_new_event()66 new_event = self.get_new_event()
67 return new_event.select_single("NewEventEntryField",67 return new_event.wait_select_single("NewEventEntryField",
68 objectName="eventLocationInput")68 objectName="eventLocationInput")
6969
70 def get_event_people_field(self):70 def get_event_people_field(self):
71 new_event = self.get_new_event()71 new_event = self.get_new_event()
72 return new_event.select_single("NewEventEntryField",72 return new_event.wait_select_single("NewEventEntryField",
73 objectName="eventPeopleInput")73 objectName="eventPeopleInput")
7474
75 def get_time_picker(self):75 def get_time_picker(self):
76 try:76 try:
@@ -78,7 +78,7 @@
78 except dbus.StateNotFoundError:78 except dbus.StateNotFoundError:
79 return None79 return None
8080
81 def swipe_view(self, direction, view, x_pad=0.35):81 def swipe_view(self, direction, view, x_pad=0.15):
82 """Swipe the given view to left or right.82 """Swipe the given view to left or right.
8383
84 Args:84 Args:
@@ -97,9 +97,9 @@
97 self.pointing_device.drag(x_start, y_line, x_stop, y_line)97 self.pointing_device.drag(x_start, y_line, x_stop, y_line)
9898
99 def get_year(self, component):99 def get_year(self, component):
100 return int(component.select_single(100 return int(component.wait_select_single(
101 "Label", objectName="yearLabel").text)101 "Label", objectName="yearLabel").text)
102102
103 def get_month_name(self, component):103 def get_month_name(self, component):
104 return component.select_single(104 return component.wait_select_single(
105 "Label", objectName="monthLabel").text105 "Label", objectName="monthLabel").text
106106
=== modified file 'tests/autopilot/calendar_app/tests/test_dayview.py'
--- tests/autopilot/calendar_app/tests/test_dayview.py 2013-11-07 21:01:38 +0000
+++ tests/autopilot/calendar_app/tests/test_dayview.py 2014-01-09 23:33:02 +0000
@@ -75,7 +75,12 @@
75 now = datetime.datetime.now()75 now = datetime.datetime.now()
7676
77 for i in xrange(1, 5):77 for i in xrange(1, 5):
78 self.main_view.swipe_view(direction, self.day_view, x_pad=0.15)78 #prevent timing issues with swiping
79 old_day = self.day_view.currentDay.datetime
80 self.main_view.swipe_view(direction, self.day_view)
81 self.assertThat(lambda: self.day_view.currentDay.datetime,
82 Eventually(NotEquals(old_day)))
83
79 current_day = self.day_view.currentDay.datetime84 current_day = self.day_view.currentDay.datetime
8085
81 expected_day = (now + datetime.timedelta(86 expected_day = (now + datetime.timedelta(
8287
=== modified file 'tests/autopilot/calendar_app/tests/test_monthview.py'
--- tests/autopilot/calendar_app/tests/test_monthview.py 2013-11-14 20:55:12 +0000
+++ tests/autopilot/calendar_app/tests/test_monthview.py 2014-01-09 23:33:02 +0000
@@ -10,7 +10,7 @@
10from __future__ import absolute_import10from __future__ import absolute_import
1111
12from autopilot.matchers import Eventually12from autopilot.matchers import Eventually
13from testtools.matchers import Equals13from testtools.matchers import Equals, NotEquals
1414
15import math15import math
1616
@@ -22,31 +22,45 @@
2222
23class TestMonthView(CalendarTestCase):23class TestMonthView(CalendarTestCase):
2424
25 def get_currentDayStart(self):25 def setUp(self):
26 month_view = self.main_view.get_month_view()26 super(TestMonthView, self).setUp()
27 return month_view.currentMonth.datetime27 self.assertThat(self.main_view.visible, Eventually(Equals(True)))
28 self.main_view.switch_to_tab("monthTab")
29
30 self.assertThat(
31 self.main_view.get_month_view, Eventually(NotEquals(None)))
32
33 self.month_view = self.main_view.get_month_view()
2834
29 def change_month(self, delta):35 def change_month(self, delta):
30 month_view = self.main_view.get_month_view()36 month_view = self.main_view.get_month_view()
31 sign = int(math.copysign(1, delta))37 sign = int(math.copysign(1, delta))
3238
33 for _ in range(abs(delta)):39 for _ in range(abs(delta)):
34 before = self.get_currentDayStart()40 before = month_view.currentMonth.datetime
41
42 #prevent timing issues with swiping
43 old_month = month_view.currentMonth.datetime
35 self.main_view.swipe_view(sign, month_view)44 self.main_view.swipe_view(sign, month_view)
45 self.assertThat(lambda: month_view.currentMonth.datetime,
46 Eventually(NotEquals(old_month)))
47
36 after = before + relativedelta(months=sign)48 after = before + relativedelta(months=sign)
3749
38 self.assertThat(lambda: self.get_currentDayStart().month,50 self.assertThat(lambda:
51 self.month_view.currentMonth.datetime.month,
39 Eventually(Equals(after.month)))52 Eventually(Equals(after.month)))
40 self.assertThat(lambda: self.get_currentDayStart().year,53 self.assertThat(lambda:
54 self.month_view.currentMonth.datetime.year,
41 Eventually(Equals(after.year)))55 Eventually(Equals(after.year)))
4256
43 def _assert_today(self):57 def _assert_today(self):
44 today = datetime.today()58 today = datetime.today()
45 self.assertThat(lambda: self.get_currentDayStart().day,59 self.assertThat(lambda: self.month_view.currentMonth.datetime.day,
46 Eventually(Equals(today.day)))60 Eventually(Equals(today.day)))
47 self.assertThat(lambda: self.get_currentDayStart().month,61 self.assertThat(lambda: self.month_view.currentMonth.datetime.month,
48 Eventually(Equals(today.month)))62 Eventually(Equals(today.month)))
49 self.assertThat(lambda: self.get_currentDayStart().year,63 self.assertThat(lambda: self.month_view.currentMonth.datetime.year,
50 Eventually(Equals(today.year)))64 Eventually(Equals(today.year)))
5165
52 def _test_go_to_today(self, delta):66 def _test_go_to_today(self, delta):
5367
=== modified file 'tests/autopilot/calendar_app/tests/test_weekview.py'
--- tests/autopilot/calendar_app/tests/test_weekview.py 2013-11-26 06:19:54 +0000
+++ tests/autopilot/calendar_app/tests/test_weekview.py 2014-01-09 23:33:02 +0000
@@ -33,20 +33,20 @@
33 self.week_view = self.main_view.get_week_view()33 self.week_view = self.main_view.get_week_view()
3434
35 def _change_week(self, direction):35 def _change_week(self, direction):
36 #TODO: fix this locale issue. The lab needs a monday start date
37 #http://bugs.python.org/issue17659
38 #weekview has firstDate property we can use instead
39 #uses unix timestamp of first day of current week @ 5 am UTC
40
41 first_dow = self._get_first_day_of_week()36 first_dow = self._get_first_day_of_week()
4237
43 self.main_view.swipe_view(direction, self.week_view, x_pad=0.15)38 #prevent timing issues with swiping
44 day_start = self.week_view.dayStart.datetime39 old_day = self.week_view.dayStart.datetime
40 self.main_view.swipe_view(direction, self.week_view)
41 self.assertThat(lambda: self.week_view.dayStart.datetime,
42 Eventually(NotEquals(old_day)))
43
44 new_day_start = self.week_view.dayStart.datetime
4545
46 expected_day_start = first_dow + datetime.timedelta(46 expected_day_start = first_dow + datetime.timedelta(
47 days=(7 * direction))47 days=(7 * direction))
4848
49 self.assertThat(day_start.day, Equals(expected_day_start.day))49 self.assertThat(new_day_start.day, Equals(expected_day_start.day))
5050
51 def _get_days_of_week(self):51 def _get_days_of_week(self):
52 #sort based on text value of the day52 #sort based on text value of the day
@@ -96,7 +96,7 @@
96 #set the start of week96 #set the start of week
97 if date.day != firstDay.day:97 if date.day != firstDay.day:
98 day_start = date - diff98 day_start = date - diff
99 logger.debug("Setting day_start %s to " % firstDay.day)99 logger.debug("Setting day_start to %s" % firstDay.day)
100 else:100 else:
101 day_start = date101 day_start = date
102 logger.debug("Using today as day_start %s" % date)102 logger.debug("Using today as day_start %s" % date)
103103
=== modified file 'tests/autopilot/calendar_app/tests/test_yearview.py'
--- tests/autopilot/calendar_app/tests/test_yearview.py 2013-11-16 22:17:37 +0000
+++ tests/autopilot/calendar_app/tests/test_yearview.py 2014-01-09 23:33:02 +0000
@@ -88,11 +88,12 @@
88 current_year = datetime.now().year88 current_year = datetime.now().year
8989
90 for i in xrange(1, how_many):90 for i in xrange(1, how_many):
91 self.main_view.swipe_view(direction, self.year_view, x_pad=0.15)91 #prevent timing issues with swiping
92 selected_year = self.year_view.currentYear.year92 self.main_view.swipe_view(direction, self.year_view)
9393
94 self.assertThat(94 self.assertThat(
95 selected_year, Equals(current_year + (i * direction)))95 lambda: self.year_view.currentYear.year,
96 Eventually(Equals(current_year + (i * direction))))
9697
97 def assert_current_year_is_default_one(self, month_component):98 def assert_current_year_is_default_one(self, month_component):
98 self.assertThat(self.main_view.get_year(month_component),99 self.assertThat(self.main_view.get_year(month_component),

Subscribers

People subscribed via source and target branches

to status/vote changes: