22 from autopilot
import logging
as autopilot_logging
23 from autopilot
import input
29 logger = logging.getLogger(__name__)
33 """An emulator class that makes it easy to interact with the shell"""
35 def get_greeter(self):
36 return self.select_single(Greeter)
38 def get_greeter_content_loader(self):
39 return self.wait_select_single(
41 objectName=
"greeterContentLoader"
44 def get_login_loader(self):
45 return self.select_single(
"QQuickLoader", objectName=
"loginLoader")
47 def get_login_list(self):
48 return self.select_single(
"LoginList")
50 def get_bottombar(self):
51 return self.select_single(
"Bottombar")
53 def get_pinPadLoader(self):
54 return self.select_single(
56 objectName=
"pinPadLoader"
59 def get_lockscreen(self):
60 return self.select_single(
"Lockscreen")
62 def get_pinentryField(self):
63 return self.select_single(objectName=
"pinentryField")
65 def _get_indicator_panel_item(self, indicator_name):
66 return self.select_single(
68 objectName=indicator_name+
'-panelItem'
71 def _get_indicator_page(self, indicator_name):
72 return self.select_single(
74 objectName=indicator_name+
'-page'
77 @autopilot_logging.log_action(logger.info)
79 """Swipe to open the indicator, wait until it's open.
81 :returns: The indicator page.
84 start_x, start_y = input.get_center_point(widget)
87 self.pointing_device.drag(start_x, start_y, end_x, end_y)
88 self.wait_select_single(
'IndicatorsMenu', fullyOpened=
True)
91 @autopilot_logging.log_action(logger.info)
93 """Show the dash swiping from the left."""
94 x, y, width, height = self.
_get_shell().globalRect
97 start_y = end_y = y + height // 2
99 self.pointing_device.drag(start_x, start_y, end_x, end_y)
102 def _get_shell(self):
103 return self.select_single(
'Shell')
106 """Return the id of the focused application."""
109 @autopilot_logging.log_action(logger.info)
111 """Open the dash clicking the dash icon on the launcher."""
113 launcher.click_dash_icon()
115 launcher.shown.wait_for(
False)
117 @autopilot_logging.log_action(logger.info)
118 def open_launcher(self):
123 def _get_launcher(self):
124 return self.select_single(Launcher)
126 def is_launcher_open(self):
129 @autopilot_logging.log_action(logger.info)
131 """Launch an application.
133 :parameter application_name: The name of the application to launch.
137 launcher.click_application_launcher_icon(application_name)
139 launcher.shown.wait_for(
False)
142 """Enter code 'code' into the single-pin lightdm pincode entry screen.
144 :param code: must be a string of numeric characters.
145 :raises: TypeError if code is not a string.
146 :raises: ValueError if code contains non-numeric characters.
149 if not isinstance(code, str):
151 "'code' parameter must be a string, not %r."
155 if not num.isdigit():
157 "'code' parameter contains non-numeric characters."
159 self.pointing_device.click_object(
162 def _get_pinpad_button(self, button_id):
163 return self.select_single(
165 objectName=
'pinPadButton{}'.format(button_id)
def _get_indicator_panel_item
def get_current_focused_app_id
def show_dash_from_launcher