Esempio n. 1
0
 def open(self, serial=None):
     self.serial = serial
     logger.warning("opened serial:%s", serial)
     try:
         self.at = at.At(serial)
     except:
         self.send_event("error", traceback.format_exc())
         self.close()
Esempio n. 2
0
 def __init__(self, json_conf):
     super(AndroidNative, self).__init__(json_conf)
     if json_conf is None:
         json_conf = {}
     self.serial = json_conf.get("serial")
     uiautomator_version = int(json_conf.get("uiautomator_version", "2"))
     at.uiautomator_version = uiautomator_version
     self.at = at.At(self.serial)
     self.ui = UiDefine(self.at)
Esempio n. 3
0
    def __init__(self,
                 page,
                 web_view_bounds=None,
                 hid=None,
                 css=None,
                 text=None,
                 cls_name=None,
                 xpath=None,
                 tag_name=None,
                 name=None):
        self.page = page
        self.ws_url = ""
        self.wrap_view_cls = MM_X5_CLASS_NAME
        serial = self.page.serial
        self.at = at.At(serial)
        self.web_view_rect = web_view_bounds
        self._json_element = None
        self._js_element = None
        if hid:
            word = "id"
            selector = hid
            self._selector = "#%s" % hid  #根据id来进行css_selector查找
        elif css:
            word = "cssSelector"
            selector = css
            self._selector = css  #css语句
        elif text:
            word = "textContent"
            selector = text
            self._selector = ':text("%s")' % text  #输入文字
        elif cls_name:
            word = "className"
            selector = cls_name
            self._selector = '.%s' % text  #根据.来输入类名
        elif xpath:
            word = "xpath"
            selector = xpath
        elif tag_name:
            word = "tagName"
            selector = tag_name
            self._selector = tag_name
        elif name:
            word = "name"
            selector = name
            self._selector = name
        else:
            raise AssertionError("no way to go")
        self.word = word
        self.selector = selector

        self._instance = 0
d = GnomeScheduleDB()

c = crontab.Crontab(is_root, user, uid, gid, home_dir)
tasks = c.read(easy=False)
crontabc = 0
cl = []
for task in tasks:
    sys.stderr.write(_("Exporting crontab task: %s" % task[0]) + "\n")
    crontabc = crontabc + 1
    cl.append([task[0], task[5], task[2], task[3], task[14]])

d.setcrontab(cl)

# AT
a = at.At(is_root, user, uid, gid, home_dir, manual_poscorrect)
tasks = a.read()
atc = 0
al = []
for task in tasks:
    sys.stderr.write(_("Exporting at task: %s" % task[0]) + "\n")
    atc = atc + 1
    al.append([task[0], task[8], task[11], task[2], task[3], task[14]])

d.setat(al)

pickle.dump(d, of, -1)
of.flush()
of.close()

sys.stderr.write(
Esempio n. 5
0
 def setUp(self):
     logging.basicConfig(level=logging.DEBUG)
     at.uiautomator_version = at.core.config.UIAUTOMATOR2
     self.at = at.At()
Esempio n. 6
0
    def __init__(self,
                 debug_flag=None,
                 inapplet=False,
                 manual_poscorrect=False):
        self.debug_flag = debug_flag
        self.inapplet = inapplet
        self.manual_poscorrect = manual_poscorrect

        self.__loadIcon__()
        self.__loadGlade__()

        self.editor = None
        self.schedule = None

        self.noevents = False

        # Common string representation for the different output modes
        self.output_strings = [
            _("Default behaviour"),
            _("Suppress output"),
            _("X application"),
            _("X application: suppress output"),
        ]

        #start the backend where all the user configuration is stored
        self.backend = data.ConfigBackend(self, "gconf")
        self.template = template.Template(self, self.backend)

        ##configure the window
        self.widget = self.xml.get_widget("mainWindow")

        self.widget.connect("delete_event", self.__quit__)
        self.widget.connect("destroy_event", self.__quit__)

        self.widget.set_icon(self.iconPixbuf)

        #load state
        (x, y, h, w) = self.backend.get_window_state()
        if (x and y):
            self.widget.move(x, y)
        if (h and w):
            self.widget.resize(h, w)

        self.widget.set_resizable(True)

        ##

        ##configure statusbar
        self.statusbar = self.xml.get_widget("statusbar")

        self.statusbarUser = self.statusbar.get_context_id("user")
        ##

        ##configure the toolbar
        self.toolbar = self.xml.get_widget("toolbar")
        self.add_button = gtk.MenuToolButton(gtk.STOCK_NEW)

        self.add_button_menu = gtk.Menu()
        self.add_button_menu_add_crontab = gtk.MenuItem()
        self.add_button_menu_add_at = gtk.MenuItem()
        self.add_button_menu_add_template = gtk.MenuItem()

        self.recurrenthbox = gtk.HBox()
        icon = gtk.Image()
        icon.set_from_pixbuf(self.iconcrontab)
        label = gtk.Label(_("Recurrent task"))
        icon.set_alignment(0, 0.5)
        label.set_justify(gtk.JUSTIFY_LEFT)
        label.set_alignment(0, 0.5)
        self.recurrenthbox.pack_start(icon, False, False, 2)
        self.recurrenthbox.pack_start(label, True, True, 2)
        self.add_button_menu_add_crontab.add(self.recurrenthbox)

        self.onetimehbox = gtk.HBox()
        icon = gtk.Image()
        icon.set_from_pixbuf(self.iconat)
        label = gtk.Label(_("One-time task"))
        icon.set_alignment(0, 0.5)
        label.set_justify(gtk.JUSTIFY_LEFT)
        label.set_alignment(0, 0.5)
        self.onetimehbox.pack_start(icon, False, False, 2)
        self.onetimehbox.pack_start(label, True, True, 2)
        self.add_button_menu_add_at.add(self.onetimehbox)

        self.templatehbox = gtk.HBox()
        icon = gtk.Image()
        icon.set_from_pixbuf(self.icontemplate)
        label = gtk.Label(_("From template"))
        icon.set_alignment(0, 0.5)
        label.set_justify(gtk.JUSTIFY_LEFT)
        label.set_alignment(0, 0.5)
        self.templatehbox.pack_start(icon, False, False, 2)
        self.templatehbox.pack_start(label, True, True, 2)
        self.add_button_menu_add_template.add(self.templatehbox)

        self.add_button_menu.append(self.add_button_menu_add_crontab)
        self.add_button_menu.append(self.add_button_menu_add_at)
        self.add_button_menu.append(self.add_button_menu_add_template)

        self.add_button.set_menu(self.add_button_menu)

        self.toolbar.insert(self.add_button, 0)
        self.add_button.set_is_important(True)
        tip = gtk.Tooltips()
        tip.enable()

        self.add_button.set_tooltip(tip, _("Add a new task"), tip_private=None)
        self.add_button.show_all()
        self.add_button_menu.show_all()
        self.add_button_menu_add_crontab.show_all()
        self.add_button_menu_add_at.show_all()

        self.add_button.connect("clicked", self.on_add_button_clicked)
        self.add_button_menu_add_crontab.connect("activate",
                                                 self.on_add_crontab_task)
        self.add_button_menu_add_at.connect("activate", self.on_add_at_task)
        self.add_button_menu_add_template.connect("activate",
                                                  self.on_add_from_template)

        self.prop_button = self.xml.get_widget("prop_button")
        self.del_button = self.xml.get_widget("del_button")
        self.run_button = self.xml.get_widget("run_button")
        self.help_button = self.xml.get_widget("help_button")
        self.btnSetUser = self.xml.get_widget("btnSetUser")
        self.btnExit = self.xml.get_widget("btnExit")
        self.about_button = self.xml.get_widget("about_button")
        self.edit_mode_button = self.xml.get_widget("edit_mode_button")
        self.button_template = self.xml.get_widget("button_m_template")

        icon = gtk.Image()
        icon.set_from_pixbuf(self.normalicontemplate)
        self.button_template.set_icon_widget(icon)
        icon.show()

        self.prop_button.set_sensitive(False)
        self.del_button.set_sensitive(False)
        self.run_button.set_sensitive(False)

        self.xml.signal_connect("on_prop_button_clicked",
                                self.on_prop_button_clicked)
        self.xml.signal_connect("on_del_button_clicked",
                                self.on_del_button_clicked)
        self.xml.signal_connect("on_help_button_clicked",
                                self.on_help_button_clicked)
        self.xml.signal_connect("on_btnSetUser_clicked",
                                self.on_btnSetUser_clicked)
        self.xml.signal_connect("on_about_menu_activate",
                                self.on_about_menu_activate)
        self.xml.signal_connect("on_edit_mode_button_clicked",
                                self.on_advanced_menu_activate)
        self.xml.signal_connect("on_btnExit_clicked", self.__quit__)
        self.xml.signal_connect("on_mainWindow_delete_event", self.__quit__)
        self.xml.signal_connect("on_run_button_clicked",
                                self.on_run_button_clicked)

        self.xml.signal_connect("on_button_m_template_clicked",
                                self.on_template_manager_button)

        ##inittializing the treeview and treemodel
        ## somethins not rite here..:
        ## [0 Title, 1 Frequency, 2 Command, 3 Crontab record, 4 ID, 5 Time, 6 Icon, 7 scheduled instance, 8 icon path, 9 date, 10 class_id, 11 user, 12 time, 13 type, 14 crontab/at, 15 advanced time string]
        ##for at this would be like:

        # ["untitled", "12:50 2004-06-25", "preview", "script", "job_id", "12:50", icon, at instance, icon_path, "2004-06-25", "a", "drzap", "at"]

        ##for crontab it would be:

        # ["untitled", "every hour", "ls /", "0 * * * * ls / # untitled", "5", "0 * * * *", icon, crontab instance,icon_path, 1(job_id), "", "", "crontab"]
        self.treemodel = gtk.ListStore(
            gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING,
            gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_STRING,
            gtk.gdk.Pixbuf, gobject.TYPE_PYOBJECT, gobject.TYPE_STRING,
            gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING,
            gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING,
            gobject.TYPE_INT, gobject.TYPE_STRING)

        self.treeview = self.xml.get_widget("treeview")

        self.xml.signal_connect("on_treeview_button_press_event",
                                self.on_treeview_button_press_event)
        self.xml.signal_connect("on_treeview_key_press_event",
                                self.on_treeview_key_pressed)

        self.treeview.set_model(self.treemodel)
        self.treeview.get_selection().connect("changed",
                                              self.on_TreeViewSelectRow)

        #enable or disable advanced depending on user config
        self.noevents = True
        if self.backend.get_advanced_option():
            self.switchView("advanced")
            self.edit_mode_button.set_active(True)
        else:
            self.switchView("simple")
            self.edit_mode_button.set_active(False)
        self.noevents = False

        self.__initUser__()

        ##create crontab
        self.crontab = crontab.Crontab(self.root, self.user, self.uid,
                                       self.gid, self.user_home_dir)
        self.crontab_editor = crontabEditor.CrontabEditor(
            self, self.backend, self.crontab, self.template)
        ##

        ##create at
        self.at = at.At(self.root, self.user, self.uid, self.gid,
                        self.user_home_dir, self.manual_poscorrect)
        self.at_editor = atEditor.AtEditor(self, self.backend, self.at,
                                           self.template)
        ##

        #set user window
        self.setuserWindow = setuserWindow.SetuserWindow(self)

        #set add window
        self.addWindow = addWindow.AddWindow(self)

        # template windows
        self.template_chooser = template_chooser.TemplateChooser(
            self, self.template)
        self.template_manager = template_manager.TemplateManager(
            self, self.template)

        self.schedule_reload()

        self.timeout_handler_id = gobject.timeout_add(9000,
                                                      self.update_schedule)

        # temporary files to be deleted
        self.temp_files = []

        if inapplet == False:
            gtk.main()