ubuntu-touch-coreapps-reviewers team mailing list archive
-
ubuntu-touch-coreapps-reviewers team
-
Mailing list archive
-
Message #08208
[Merge] lp:~nskaggs/reminders-app/fix-ap-tests into lp:reminders-app
Nicholas Skaggs has proposed merging lp:~nskaggs/reminders-app/fix-ap-tests into lp:reminders-app.
Commit message:
Adds support for running autopilot tests with SDK out of tree builds
Fix reminders.tests.test_reminders.RemindersTestCaseWithoutAccount tests
Requested reviews:
Ubuntu Notes app developers (notes-app-dev)
For more details, see:
https://code.launchpad.net/~nskaggs/reminders-app/fix-ap-tests/+merge/286422
Adds support for running autopilot tests with SDK out of tree builds
Fix reminders.tests.test_reminders.RemindersTestCaseWithoutAccount tests
--
Your team Ubuntu Notes app developers is requested to review the proposed merge of lp:~nskaggs/reminders-app/fix-ap-tests into lp:reminders-app.
=== modified file 'tests/autopilot/reminders/__init__.py'
--- tests/autopilot/reminders/__init__.py 2014-11-25 16:36:33 +0000
+++ tests/autopilot/reminders/__init__.py 2016-02-17 22:23:49 +0000
@@ -41,7 +41,20 @@
def __init__(self, app_proxy):
self.app = app_proxy
- self.main_view = self.app.select_single(MainView)
+ # Use only objectName due to bug 1350532
+ self.main_view = self.app.wait_select_single(objectName="mainView")
+
+
+ @property
+ def no_account_dialog(self):
+ try:
+ self._no_account_dialog = self.app.wait_select_single(
+ objectName='noAccountDialog')
+ except dbus.StateNotFoundError:
+ raise RemindersAppException(
+ 'The No Account dialog is not present')
+ else:
+ return self._no_account_dialog
def open_notebooks(self):
"""Open the Notebooks page.
@@ -61,19 +74,7 @@
def __init__(self, *args):
super(MainView, self).__init__(*args)
self.visible.wait_for(True)
- try:
- self._no_account_dialog = self.select_single(
- objectName='noAccountDialog')
- except dbus.StateNotFoundError:
- self._no_account_dialog = None
- @property
- def no_account_dialog(self):
- if self._no_account_dialog is None:
- raise RemindersAppException(
- 'The No Account dialog is not present')
- else:
- return self._no_account_dialog
class NoAccountDialog(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
@@ -108,7 +109,8 @@
super(_Page, self).__init__(*args)
# XXX we need a better way to keep reference to the main view.
# --elopio - 2014-02-26
- self.main_view = self.get_root_instance().select_single(MainView)
+ self.main_view = \
+ self.get_root_instance().wait_select_single(objectName="mainView")
class PulldownListView(ubuntuuitoolkit.QQuickListView):
=== modified file 'tests/autopilot/reminders/tests/__init__.py'
--- tests/autopilot/reminders/tests/__init__.py 2014-11-13 10:30:34 +0000
+++ tests/autopilot/reminders/tests/__init__.py 2016-02-17 22:23:49 +0000
@@ -41,11 +41,16 @@
"""
- local_location = os.path.dirname(os.path.dirname(os.getcwd()))
+ local_build_location = os.path.dirname(os.path.dirname(os.getcwd()))
+ sdk_build_location = os.path.join(os.path.dirname(local_build_location),
+ os.path.basename(local_build_location) + '-build')
- local_location_qml = os.path.join(
- local_location, 'src/app/qml/reminders.qml')
- local_location_binary = os.path.join(local_location, 'src/app/reminders')
+ local_build_location_qml = os.path.join(
+ local_build_location, 'src/app/qml/reminders.qml')
+ local_build_location_binary = os.path.join(local_build_location, 'src/app/reminders')
+ sdk_build_location_qml = os.path.join(
+ sdk_build_location, 'src/app/qml/reminders.qml')
+ sdk_build_location_binary = os.path.join(sdk_build_location, 'src/app/reminders')
installed_location_binary = '/usr/bin/reminders'
installed_location_qml = '/usr/share/reminders/qml/reminders.qml'
@@ -63,9 +68,12 @@
subprocess.call(['pkill', '-9', 'signond'])
def get_launcher_method_and_type(self):
- if os.path.exists(self.local_location_binary):
+ if os.path.exists(self.local_build_location_binary):
launcher = self.launch_test_local
test_type = 'local'
+ elif os.path.exists(self.sdk_build_location_binary):
+ launcher = self.launch_test_sdk
+ test_type = 'sdk'
elif os.path.exists(self.installed_location_binary):
launcher = self.launch_test_installed
test_type = 'deb'
@@ -78,9 +86,20 @@
def launch_test_local(self):
self.useFixture(fixtures.EnvironmentVariable(
'QML2_IMPORT_PATH',
- newvalue=os.path.join(self.local_location, 'src/plugin')))
- return self.launch_test_application(
- self.local_location_binary,
+ newvalue=os.path.join(self.local_build_location, 'src/plugin')))
+ return self.launch_test_application(
+ self.local_build_location_binary,
+ '-s',
+ app_type='qt',
+ emulator_base=ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase)
+
+ @autopilot_logging.log_action(logger.info)
+ def launch_test_sdk(self):
+ self.useFixture(fixtures.EnvironmentVariable(
+ 'QML2_IMPORT_PATH',
+ newvalue=os.path.join(self.sdk_build_location_binary, 'src/plugin')))
+ return self.launch_test_application(
+ self.sdk_build_location_binary,
'-s',
app_type='qt',
emulator_base=ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase)
=== modified file 'tests/autopilot/reminders/tests/test_reminders.py'
--- tests/autopilot/reminders/tests/test_reminders.py 2014-12-17 11:10:50 +0000
+++ tests/autopilot/reminders/tests/test_reminders.py 2016-02-17 22:23:49 +0000
@@ -38,7 +38,7 @@
def test_open_application_without_account(self):
"""Test that the No account dialog is visible."""
- self.assertTrue(self.app.main_view.no_account_dialog.visible)
+ self.assertTrue(self.app.no_account_dialog.visible)
def test_go_to_account_settings(self):
"""Test that the Go to account settings button calls url-dispatcher."""
@@ -48,7 +48,7 @@
url_dispatcher = fixture_setup.FakeURLDispatcher()
self.useFixture(url_dispatcher)
- self.app.main_view.no_account_dialog.open_account_settings()
+ self.app.no_account_dialog.open_account_settings()
def get_last_dispatch_url_call_parameter():
# Workaround for http://pad.lv/1312384
@@ -66,7 +66,7 @@
def setUp(self):
super(RemindersTestCaseWithAccount, self).setUp()
- no_account_dialog = self.app.main_view.no_account_dialog
+ no_account_dialog = self.app.no_account_dialog
self.add_evernote_account()
logger.info('Waiting for the Evernote account to be created.')
no_account_dialog.wait_until_destroyed()
Follow ups