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 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 get_po_class_for_url(self, url, class_name, folder_path, area=None): po_folder = os.path.join(folder_path, RootFolder.PO_FOLDER) img_folder = os.path.join(folder_path, RootFolder.PO_FOLDER, PageObjectClass.IMAGE_FOLDER) check_if_path_exists(folder_path) self.__log(u'Generating PageObjectClass for url %s with area %s' % (url, str(area))) fields = self.get_all_po_fields(url, area) img_as_png = self.browser.get_screenshot_as_png() filename = get_py_file_name_from_class_name(class_name) file_path = os.path.join(po_folder, filename) img_path = os.path.join(img_folder, os.path.splitext(filename)[0] + '.png') return PageObjectClass(class_name, url, fields, area, file_path, img_path, img_as_png)
def test_get_py_file_name_from_class_name(self): class_name = get_py_file_name_from_class_name('my_test') self.assertEqual(class_name, 'my_test.py') class_name = get_py_file_name_from_class_name('My_Test') self.assertEqual(class_name, 'my_test.py') class_name = get_py_file_name_from_class_name('MyTest') self.assertEqual(class_name, 'my_test.py') class_name = get_py_file_name_from_class_name('MyTESt') self.assertEqual(class_name, 'my_test.py') class_name = get_py_file_name_from_class_name('MyTest1') self.assertEqual(class_name, 'my_test1.py') class_name = get_py_file_name_from_class_name('MyTest2') self.assertEqual(class_name, 'my_test2.py') class_name = get_py_file_name_from_class_name('A') self.assertEqual(class_name, 'a.py')