예제 #1
0
    def testClearAll(self):

        """
        clear all the code
        """

        expected_code_full = \
            "from pywinauto.application import Application\n\n" \
            "app = Application().Start(cmd_line=u'{app_path}')\n" \
            "window = app.Dialog\n" \
            "window.Wait('ready')\n" \
            "systabcontrol = window.TabControl\n" \
            "systabcontrol.Select(u'CTreeCtrl')\n\n" \
            "app.Kill_()"

        path = (u'Common Controls Sample',

                u'CTreeCtrl, CAnimateCtrl, CToolBarCtrl, CDateTimeCtrl, '
                u'CMonthCalCtrl',

                u'CTreeCtrl',
                )

        with test_app("CmnCtrl1.exe") as (app, app_path):
            proxy_obj = self.get_proxy_object(path)
            code_full = proxy_obj.Get_code('Select')

            cm = code_manager.CodeManager()
            cm.clear()
            code_cleared = cm.get_full_code()

        expected_code_full = expected_code_full.format(app_path=app_path)
        self.assertEquals(expected_code_full, code_full)

        self.assertEquals("", code_cleared)
예제 #2
0
    def tearDown(self):

        """
        All app's tearDown moved into the test_app contextmanager.
        """

        code_manager.CodeManager().clear()  # Clear single tone CodeManager
        reload(code_manager)  # Reset class's counters
        reload(proxy)  # Reset class's counters
        del self.pwa_root
예제 #3
0
    def EditorContextMenu(self, event):
        cm = code_manager.CodeManager()
        menu = wx.Menu()

        for _id, option_name in sorted(const.EDITOR_ACTIONS.items()):
            if option_name:
                menu.Append(_id, option_name)
                if not cm:  # empty code
                    menu.Enable(_id, False)
            else:
                menu.AppendSeparator()
        if not self.textCtrl_Editor.GetStringSelection():  # empty selection
            menu.Enable(404, False)  # 404: 'Copy'

        self.PopupMenu(menu)
        menu.Destroy()
예제 #4
0
    def testReleaseVariable(self):

        """
        variable released while the clear and used again by other object
        """

        expected_code_button1 = \
            "from pywinauto.application import Application\n\n" \
            "app = Application().Start(cmd_line=u'{app_path}')\n" \
            "window = app.Dialog\n" \
            "window.Wait('ready')\n" \
            "button = window.CheckBox8\n" \
            "button.Click()\n\n" \
            "app.Kill_()"

        expected_code_button2 = \
            "from pywinauto.application import Application\n\n" \
            "app = Application().Start(cmd_line=u'{app_path}')\n" \
            "window = app.Dialog\n" \
            "window.Wait('ready')\n" \
            "button = window.CheckBox5\n" \
            "button.Click()\n\n" \
            "app.Kill_()"

        path_button1 = (u'Common Controls Sample',
                        u'TVS_CHECKBOXES',
                        )

        path_button2 = (u'Common Controls Sample',
                        u'TVS_DISABLEDRAGDROP',
                        )

        with test_app("CmnCtrl1.exe") as (app, app_path):
            proxy_obj_button1 = self.get_proxy_object(path_button1)
            code_button1 = proxy_obj_button1.Get_code('Click')

            cm = code_manager.CodeManager()
            cm.clear_last()

            proxy_obj_button2 = self.get_proxy_object(path_button2)
            code_button2 = proxy_obj_button2.Get_code('Click')

        expected_code_button1 = expected_code_button1.format(app_path=app_path)
        self.assertEquals(expected_code_button1, code_button1)

        expected_code_button2 = expected_code_button2.format(app_path=app_path)
        self.assertEquals(expected_code_button2, code_button2)
예제 #5
0
    def editor_action(self, menu_id):
        cm = code_manager.CodeManager()

        if 'Clear last command' == const.EDITOR_ACTIONS[menu_id]:
            cm.clear_last()
            self.textCtrl_Editor.SetValue(cm.get_full_code())

        elif 'Clear the code' == const.EDITOR_ACTIONS[menu_id]:

            def confirm_clearing():
                yes_no_dlg = wx.MessageDialog(
                    self.textCtrl_Editor,
                    "Are you sure you want to clear all of "
                    "the code?", "Clear all?", wx.YES_NO | wx.ICON_QUESTION)
                result = yes_no_dlg.ShowModal() == wx.ID_YES
                yes_no_dlg.Destroy()
                return result

            if confirm_clearing():
                self.textCtrl_Editor.SetValue("")
                cm.clear()

        elif 'Copy' == const.EDITOR_ACTIONS[menu_id]:
            self.textCtrl_Editor.Copy()

        elif 'Select all' == const.EDITOR_ACTIONS[menu_id]:
            self.textCtrl_Editor.SetFocus()
            self.textCtrl_Editor.SelectAll()

        elif 'Save code to file' == const.EDITOR_ACTIONS[menu_id]:
            import os
            dlg = wx.FileDialog(self, "Choose a file", '', '', "*.py",
                                wx.SAVE | wx.OVERWRITE_PROMPT)
            if dlg.ShowModal() == wx.ID_OK:
                with open(os.path.join(dlg.GetDirectory(), dlg.GetFilename()),
                          'w') as out_file:
                    out_file.write("# automatically generated by SWAPY\n")
                    out_file.write(self.textCtrl_Editor.GetValue())
            dlg.Destroy()

        else:
            raise RuntimeError("Unknown menu_id=%s for editor "
                               "menu" % menu_id)