22 from autopilot
import logging
as autopilot_logging
23 from autopilot
import input
30 logger = logging.getLogger(__name__)
34 """An emulator class that makes it easy to interact with the shell"""
36 def get_greeter(self):
37 return self.select_single(Greeter)
39 def get_greeter_content_loader(self):
40 return self.wait_select_single(
42 objectName=
"greeterContentLoader"
45 def get_login_loader(self):
46 return self.select_single(
"QQuickLoader", objectName=
"loginLoader")
48 def get_login_list(self):
49 return self.select_single(
"LoginList")
52 return self.select_single(Hud)
54 def get_hud_showable(self):
55 return self.select_single(
"Showable", objectName=
"hudShowable")
57 def get_hud_show_button(self):
58 return self.select_single(
"HudButton")
60 def get_hud_edge_drag_area(self):
61 return self.select_single(objectName=
"hudDragArea")
63 def get_bottombar(self):
64 return self.select_single(
"Bottombar")
66 def get_pinPadLoader(self):
67 return self.select_single(
69 objectName=
"pinPadLoader"
72 def get_lockscreen(self):
73 return self.select_single(
"Lockscreen")
75 def get_pinentryField(self):
76 return self.select_single(objectName=
"pinentryField")
78 def _get_indicator_panel_item(self, indicator_name):
79 return self.select_single(
81 objectName=indicator_name+
'-panelItem'
84 def _get_indicator_page(self, indicator_name):
85 return self.select_single(
87 objectName=indicator_name+
'-page'
90 @autopilot_logging.log_action(logger.info)
92 """Swipe to open the indicator, wait until it's open.
94 :returns: The indicator page.
97 start_x, start_y = input.get_center_point(widget)
100 self.pointing_device.drag(start_x, start_y, end_x, end_y)
101 self.wait_select_single(
'IndicatorsMenu', fullyOpened=
True)
104 @autopilot_logging.log_action(logger.info)
106 """Show the dash swiping from the left."""
107 x, y, width, height = self.
_get_shell().globalRect
110 start_y = end_y = y + height // 2
112 self.pointing_device.drag(start_x, start_y, end_x, end_y)
115 def _get_shell(self):
116 return self.select_single(
'Shell')
119 """Return the id of the focused application."""
122 @autopilot_logging.log_action(logger.info)
124 """Open the dash clicking the dash icon on the launcher."""
126 launcher.click_dash_icon()
128 launcher.shown.wait_for(
False)
130 @autopilot_logging.log_action(logger.info)
131 def open_launcher(self):
136 def _get_launcher(self):
137 return self.select_single(Launcher)
139 def is_launcher_open(self):
142 @autopilot_logging.log_action(logger.info)
144 """Launch an application.
146 :parameter application_name: The name of the application to launch.
150 launcher.click_application_launcher_icon(application_name)
152 launcher.shown.wait_for(
False)
155 """Enter code 'code' into the single-pin lightdm pincode entry screen.
157 :param code: must be a string of numeric characters.
158 :raises: TypeError if code is not a string.
159 :raises: ValueError if code contains non-numeric characters.
162 if not isinstance(code, str):
164 "'code' parameter must be a string, not %r."
168 if not num.isdigit():
170 "'code' parameter contains non-numeric characters."
172 self.pointing_device.click_object(
175 def _get_pinpad_button(self, button_id):
176 return self.select_single(
178 objectName=
'pinPadButton{}'.format(button_id)
def _get_indicator_panel_item
def get_current_focused_app_id
def show_dash_from_launcher