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]'))
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'))
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'))
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()
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]'))
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')
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')
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()
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()
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'))
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'))
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'))
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')
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')
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'))
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'))
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')