Example #1
0
    def test_is_area_correct(self):
        self.assertTrue(StringUtils.is_area_correct('(0,0,0,0)'))
        self.assertTrue(StringUtils.is_area_correct('(0, 0, 0, 0)'))
        self.assertTrue(StringUtils.is_area_correct('(   0,   0,   0,   0   )'))
        self.assertTrue(StringUtils.is_area_correct('(100, 100, 100, 100)'))

        self.assertFalse(StringUtils.is_area_correct('(0, 0, 0)'))
        self.assertFalse(StringUtils.is_area_correct('(0, 0, 0, d)'))
        self.assertFalse(StringUtils.is_area_correct('0, 0, 0, 0'))
        self.assertFalse(StringUtils.is_area_correct('(0, 0, 0, 0, 0)'))
        self.assertFalse(StringUtils.is_area_correct('[0, 0, 0, 0]'))
Example #2
0
    def test_is_class_name_correct(self):
        self.assertTrue(StringUtils.is_class_name_correct('AsDaAs'))
        self.assertTrue(StringUtils.is_class_name_correct('AAASdsd'))
        self.assertTrue(StringUtils.is_class_name_correct('Azczxc'))
        self.assertTrue(StringUtils.is_class_name_correct('AWEasd8'))
        self.assertTrue(StringUtils.is_class_name_correct('XCZXC32423'))
        self.assertTrue(StringUtils.is_class_name_correct('X'))

        self.assertFalse(StringUtils.is_class_name_correct(''))
        self.assertFalse(StringUtils.is_class_name_correct('google'))
        self.assertFalse(StringUtils.is_class_name_correct('google.com'))
Example #3
0
    def test_is_url_correct(self):
        self.assertTrue(StringUtils.is_url_correct('http://google.com'))
        self.assertTrue(StringUtils.is_url_correct('http://google.com/'))
        self.assertTrue(StringUtils.is_url_correct('http://www.google.com'))
        self.assertTrue(StringUtils.is_url_correct('http://www.google.com/'))
        self.assertTrue(StringUtils.is_url_correct('https://google.com/'))
        self.assertTrue(StringUtils.is_url_correct('https://google.com/sdf/we/qwe/asd?q=4'))

        self.assertFalse(StringUtils.is_url_correct(''))
        self.assertFalse(StringUtils.is_url_correct('google.com'))
        self.assertFalse(StringUtils.is_url_correct('www.google.com'))
Example #4
0
    def test_is_class_name_correct(self):
        self.assertTrue(StringUtils.is_class_name_correct('AsDaAs'))
        self.assertTrue(StringUtils.is_class_name_correct('AAASdsd'))
        self.assertTrue(StringUtils.is_class_name_correct('Azczxc'))
        self.assertTrue(StringUtils.is_class_name_correct('AWEasd8'))
        self.assertTrue(StringUtils.is_class_name_correct('XCZXC32423'))
        self.assertTrue(StringUtils.is_class_name_correct('X'))

        self.assertFalse(StringUtils.is_class_name_correct(''))
        self.assertFalse(StringUtils.is_class_name_correct('google'))
        self.assertFalse(StringUtils.is_class_name_correct('google.com'))
Example #5
0
    def generate(self, evt):
        if self.__is_gen_data_correct():
            folder = self.__get_root_folder()
            if RootFolder.PO_FOLDER in os.listdir(folder):
                folder = os.path.join(folder, RootFolder.PO_FOLDER)

            class_name = self.txt_class_name.GetValue()
            file_path = os.path.join(folder,
                                     get_py_file_name_from_class_name(class_name))
            area_as_text = self.txt_selected_area.GetValue()
            url = self.main_frame.get_url()
            if os.path.exists(file_path):
                show_dialog_path_does_exist(self, file_path)
            elif not StringUtils.is_class_name_correct(class_name):
                show_dialog_bad_name(self, class_name, 'Header', 'ContextMenu')
            elif not StringUtils.is_area_correct(area_as_text):
                show_dialog(self, u'Bad selected area: %s' % area_as_text,
                            u'Bad selected area')
            elif not StringUtils.is_url_correct(url):
                show_dialog(self, u'Bad url: %s' % url, u'Bad url')
            else:
                dialog = DialogWithText(self, 'Generating page object class...')
                handler = WxTextCtrlHandler(dialog.txt_ctrl)
                logger = Logger(log_to_console=False, handler=handler)

                dialog.Show()

                area = eval(area_as_text)
                generator = PageObjectGenerator(self.main_frame.get_browser(),
                                                logger)
                folder_path = self.main_frame.get_tmp_dir()

                def generate():
                    dialog.btn_ok.Disable()
                    po_class = generator.get_po_class_for_url(url,
                                                              class_name,
                                                              folder_path,
                                                              area)
                    po_class.save(folder)
                    logger.info(u"Saving class '%s'..." % po_class.name)
                    logger.info(u'Saved file: %s' % po_class.file_path)
                    logger.info(u'Saved file: %s' % po_class.img_path)
                    logger.info(u'DONE')
                    dialog.btn_ok.Enable()

                thread = Thread(target=generate)
                thread.setDaemon(True)
                thread.start()
Example #6
0
    def test_is_area_correct(self):
        self.assertTrue(StringUtils.is_area_correct('(0,0,0,0)'))
        self.assertTrue(StringUtils.is_area_correct('(0, 0, 0, 0)'))
        self.assertTrue(
            StringUtils.is_area_correct('(   0,   0,   0,   0   )'))
        self.assertTrue(StringUtils.is_area_correct('(100, 100, 100, 100)'))

        self.assertFalse(StringUtils.is_area_correct('(0, 0, 0)'))
        self.assertFalse(StringUtils.is_area_correct('(0, 0, 0, d)'))
        self.assertFalse(StringUtils.is_area_correct('0, 0, 0, 0'))
        self.assertFalse(StringUtils.is_area_correct('(0, 0, 0, 0, 0)'))
        self.assertFalse(StringUtils.is_area_correct('[0, 0, 0, 0]'))
Example #7
0
    def __open_url(self, evt):
        url = self.__txt_url.GetValue()
        if StringUtils.is_url_correct(url):
            self.bth_open_url.Disable()

            name = self.get_browser_initials()

            try:
                if self.__browser and self.__browser.get_browser_initials(
                ) != name:
                    self.__browser.quit()
                    self.__browser = Browser(name)
                elif not self.__browser:
                    self.__browser = Browser(name)
            except Exception:
                show_error_dialog(self, traceback.format_exc(),
                                  u'Failed to open browser')
                self.__browser = None

            if self.__browser:
                self.__browser.open(url)
            # TODO: if generator or selector -> load image
            self.bth_open_url.Enable()
        else:
            show_dialog(self, u'Bad url: %s' % url, u'Bad url')
Example #8
0
    def __open_or_create_test_file(self, style):
        if self.__cur_po_class:
            folder = self.GetTopLevelParent().get_root_folder()
            if not folder:
                folder = os.path.dirname(self.__cur_po_class.file_path)
            elif RootFolder.TESTS_FOLDER in os.listdir(folder):
                folder = os.path.join(folder, RootFolder.TESTS_FOLDER)

            dialog = FileDialog(self,
                                defaultDir=folder,
                                style=style,
                                wildcard='*.py')
            if dialog.ShowModal() == ID_OK:
                test_file = dialog.GetPath()
                load_file = style == FD_OPEN

                filename = os.path.basename(test_file)
                if StringUtils.is_test_file_name_correct(test_file):
                    test_file_ui = TestFileUI(self.tabs, test_file,
                                              self.__cur_po_class, load_file)
                    self.tabs.AddPage(test_file_ui, filename)
                    self.tabs.SetSelection(self.tabs.GetPageCount() - 1)

                    if style == FD_SAVE:
                        test_file_ui.set_file_was_changed()
                else:
                    show_dialog_bad_name(self, filename, 'my_first_test.py')
        else:
            show_dialog(self,
                        u'Please select class file.',
                        u'Class file was not opened')
Example #9
0
    def __find_selectors(self, evt):
        browser = self.main_frame.get_browser()
        if browser:
            url = self.main_frame.get_url()
            if not StringUtils.is_url_correct(url):
                show_dialog(self, u'Bad url: %s' % url, u'Bad url')
            else:
                dialog = DialogWithText(self, 'Finding selectors...')
                handler = WxTextCtrlHandler(dialog.txt_ctrl)
                logger = Logger(log_to_console=False, handler=handler)

                dialog.Show()

                generator = PageObjectGenerator(browser, logger)

                def find_selectors():
                    dialog.btn_ok.Disable()
                    self.po_fields = generator.get_all_po_fields(url, None)
                    logger.info(u'DONE')
                    self.__update_table()
                    dialog.btn_ok.Enable()

                thread = Thread(target=find_selectors)
                thread.setDaemon(True)
                thread.start()
Example #10
0
    def __find_selectors(self, evt):
        browser = self.main_frame.get_browser()
        if browser:
            url = self.main_frame.get_url()
            if not StringUtils.is_url_correct(url):
                show_dialog(self, u'Bad url: %s' % url, u'Bad url')
            else:
                dialog = DialogWithText(self, 'Finding selectors...')
                handler = WxTextCtrlHandler(dialog.txt_ctrl)
                logger = Logger(log_to_console=False, handler=handler)

                dialog.Show()

                generator = PageObjectGenerator(browser, logger)

                def find_selectors():
                    dialog.btn_ok.Disable()
                    self.po_fields = generator.get_all_po_fields(url, None)
                    logger.info(u'DONE')
                    self.__update_table()
                    dialog.btn_ok.Enable()

                thread = Thread(target=find_selectors)
                thread.setDaemon(True)
                thread.start()
Example #11
0
    def __open_or_create_test_file(self, style):
        if self.__cur_po_class:
            folder = self.GetTopLevelParent().get_root_folder()
            if not folder:
                folder = os.path.dirname(self.__cur_po_class.file_path)
            elif RootFolder.TESTS_FOLDER in os.listdir(folder):
                folder = os.path.join(folder, RootFolder.TESTS_FOLDER)

            dialog = FileDialog(self,
                                defaultDir=folder,
                                style=style,
                                wildcard='*.py')
            if dialog.ShowModal() == ID_OK:
                test_file = dialog.GetPath()
                load_file = style == FD_OPEN

                filename = os.path.basename(test_file)
                if StringUtils.is_test_file_name_correct(test_file):
                    test_file_ui = TestFileUI(self.tabs, test_file,
                                              self.__cur_po_class, load_file)
                    self.tabs.AddPage(test_file_ui, filename)
                    self.tabs.SetSelection(self.tabs.GetPageCount() - 1)

                    if style == FD_SAVE:
                        test_file_ui.set_file_was_changed()
                else:
                    show_dialog_bad_name(self, filename, 'my_first_test.py')
        else:
            show_dialog(self, u'Please select class file.',
                        u'Class file was not opened')
Example #12
0
    def generate(self, evt):
        if self.__is_gen_data_correct():
            folder = self.__get_root_folder()
            if RootFolder.PO_FOLDER in os.listdir(folder):
                folder = os.path.join(folder, RootFolder.PO_FOLDER)

            class_name = self.txt_class_name.GetValue()
            file_path = os.path.join(
                folder, get_py_file_name_from_class_name(class_name))
            area_as_text = self.txt_selected_area.GetValue()
            url = self.main_frame.get_url()
            if os.path.exists(file_path):
                show_dialog_path_does_exist(self, file_path)
            elif not StringUtils.is_class_name_correct(class_name):
                show_dialog_bad_name(self, class_name, 'Header', 'ContextMenu')
            elif not StringUtils.is_area_correct(area_as_text):
                show_dialog(self, u'Bad selected area: %s' % area_as_text,
                            u'Bad selected area')
            elif not StringUtils.is_url_correct(url):
                show_dialog(self, u'Bad url: %s' % url, u'Bad url')
            else:
                dialog = DialogWithText(self,
                                        'Generating page object class...')
                handler = WxTextCtrlHandler(dialog.txt_ctrl)
                logger = Logger(log_to_console=False, handler=handler)

                dialog.Show()

                area = eval(area_as_text)
                generator = PageObjectGenerator(self.main_frame.get_browser(),
                                                logger)
                folder_path = self.main_frame.get_tmp_dir()

                def generate():
                    dialog.btn_ok.Disable()
                    po_class = generator.get_po_class_for_url(
                        url, class_name, folder_path, area)
                    po_class.save(folder)
                    logger.info(u"Saving class '%s'..." % po_class.name)
                    logger.info(u'Saved file: %s' % po_class.file_path)
                    logger.info(u'Saved file: %s' % po_class.img_path)
                    logger.info(u'DONE')
                    dialog.btn_ok.Enable()

                thread = Thread(target=generate)
                thread.setDaemon(True)
                thread.start()
Example #13
0
    def test_is_url_correct(self):
        self.assertTrue(StringUtils.is_url_correct('http://google.com'))
        self.assertTrue(StringUtils.is_url_correct('http://google.com/'))
        self.assertTrue(StringUtils.is_url_correct('http://www.google.com'))
        self.assertTrue(StringUtils.is_url_correct('http://www.google.com/'))
        self.assertTrue(StringUtils.is_url_correct('https://google.com/'))
        self.assertTrue(
            StringUtils.is_url_correct(
                'https://google.com/sdf/we/qwe/asd?q=4'))

        self.assertFalse(StringUtils.is_url_correct(''))
        self.assertFalse(StringUtils.is_url_correct('google.com'))
        self.assertFalse(StringUtils.is_url_correct('www.google.com'))
Example #14
0
    def test_is_test_file_name_correct(self):
        self.assertTrue(StringUtils.is_test_file_name_correct('my_new_test.py'))
        self.assertTrue(StringUtils.is_test_file_name_correct('2my_new_test.py'))
        self.assertTrue(StringUtils.is_test_file_name_correct('my_2new_test.py'))

        self.assertFalse(StringUtils.is_test_file_name_correct('test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('_test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('A_test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('9B_test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('B9_test.py'))
Example #15
0
    def test_is_test_case_name_correct(self):
        self.assertTrue(StringUtils.is_test_case_name_correct('test_1'))
        self.assertTrue(StringUtils.is_test_case_name_correct('test_new'))
        self.assertTrue(StringUtils.is_test_case_name_correct('test_search'))

        self.assertFalse(StringUtils.is_test_case_name_correct('test.py'))
        self.assertFalse(StringUtils.is_test_case_name_correct('test'))
        self.assertFalse(StringUtils.is_test_case_name_correct('_test_asd'))
        self.assertFalse(StringUtils.is_test_case_name_correct('asd'))
        self.assertFalse(StringUtils.is_test_case_name_correct('453453sfs'))
Example #16
0
    def test_is_test_case_name_correct(self):
        self.assertTrue(StringUtils.is_test_case_name_correct('test_1'))
        self.assertTrue(StringUtils.is_test_case_name_correct('test_new'))
        self.assertTrue(StringUtils.is_test_case_name_correct('test_search'))

        self.assertFalse(StringUtils.is_test_case_name_correct('test.py'))
        self.assertFalse(StringUtils.is_test_case_name_correct('test'))
        self.assertFalse(StringUtils.is_test_case_name_correct('_test_asd'))
        self.assertFalse(StringUtils.is_test_case_name_correct('asd'))
        self.assertFalse(StringUtils.is_test_case_name_correct('453453sfs'))
Example #17
0
 def __create_test(self, page):
     modal = TextEntryDialog(self, u'Enter test case name',
                             u'Create new test case')
     if modal.ShowModal() == ID_OK:
         test_case_name = modal.GetValue()
         if StringUtils.is_test_case_name_correct(test_case_name):
             page.create_new_test_case(test_case_name)
         else:
             show_dialog_bad_name(self, test_case_name, 'test_search')
Example #18
0
 def __create_method(self, page):
     modal = TextEntryDialog(self, u'Enter method name', u'Create method')
     if modal.ShowModal() == ID_OK:
         method_name = modal.GetValue()
         if StringUtils.is_method_name_correct(method_name):
             page.create_method(method_name)
         else:
             show_dialog_bad_name(self, method_name, 'search', 'login',
                                  'fill_data')
Example #19
0
 def __create_method(self, page):
     modal = TextEntryDialog(self,
                             u'Enter method name',
                             u'Create method')
     if modal.ShowModal() == ID_OK:
         method_name = modal.GetValue()
         if StringUtils.is_method_name_correct(method_name):
             page.create_method(method_name)
         else:
             show_dialog_bad_name(self, method_name, 'search', 'login', 'fill_data')
Example #20
0
 def __create_test(self, page):
     modal = TextEntryDialog(self,
                             u'Enter test case name',
                             u'Create new test case')
     if modal.ShowModal() == ID_OK:
         test_case_name = modal.GetValue()
         if StringUtils.is_test_case_name_correct(test_case_name):
             page.create_new_test_case(test_case_name)
         else:
             show_dialog_bad_name(self, test_case_name, 'test_search')
Example #21
0
    def test_is_method_name_correct(self):
        self.assertTrue(StringUtils.is_method_name_correct('method_1'))
        self.assertTrue(StringUtils.is_method_name_correct('new_method'))
        self.assertTrue(StringUtils.is_method_name_correct('search'))
        self.assertTrue(StringUtils.is_method_name_correct('asd'))

        self.assertFalse(StringUtils.is_method_name_correct('test.py'))
        self.assertFalse(StringUtils.is_method_name_correct('_test_asd'))
        self.assertFalse(StringUtils.is_method_name_correct('453453sfs'))
Example #22
0
    def test_is_method_name_correct(self):
        self.assertTrue(StringUtils.is_method_name_correct('method_1'))
        self.assertTrue(StringUtils.is_method_name_correct('new_method'))
        self.assertTrue(StringUtils.is_method_name_correct('search'))
        self.assertTrue(StringUtils.is_method_name_correct('asd'))

        self.assertFalse(StringUtils.is_method_name_correct('test.py'))
        self.assertFalse(StringUtils.is_method_name_correct('_test_asd'))
        self.assertFalse(StringUtils.is_method_name_correct('453453sfs'))
Example #23
0
    def test_is_test_file_name_correct(self):
        self.assertTrue(
            StringUtils.is_test_file_name_correct('my_new_test.py'))
        self.assertTrue(
            StringUtils.is_test_file_name_correct('2my_new_test.py'))
        self.assertTrue(
            StringUtils.is_test_file_name_correct('my_2new_test.py'))

        self.assertFalse(StringUtils.is_test_file_name_correct('test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('_test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('A_test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('9B_test.py'))
        self.assertFalse(StringUtils.is_test_file_name_correct('B9_test.py'))
Example #24
0
    def __open_url(self, evt):
        url = self.__txt_url.GetValue()
        if StringUtils.is_url_correct(url):
            self.bth_open_url.Disable()

            name = self.get_browser_initials()

            try:
                if self.__browser and self.__browser.get_browser_initials() != name:
                    self.__browser.quit()
                    self.__browser = Browser(name)
                elif not self.__browser:
                    self.__browser = Browser(name)
            except Exception:
                show_error_dialog(self, traceback.format_exc(), u'Failed to open browser')
                self.__browser = None

            if self.__browser:
                self.__browser.open(url)
            # TODO: if generator or selector -> load image
            self.bth_open_url.Enable()
        else:
            show_dialog(self, u'Bad url: %s' % url, u'Bad url')