def test_reporting(fs): setup_fs(fs, [ "FormExample.xml", "FormExampleNoTxtFields.xml", "FormExampleTwoTxtFields.xml" ]) assert True == os.path.isfile(osep + "repo" + osep + "FormExample.xml") assert True == os.path.isfile(osep + "repo" + osep + "FormExampleNoTxtFields.xml") assert True == os.path.isfile(osep + "repo" + osep + "FormExampleTwoTxtFields.xml") sys.argv = [".", osep + "repo"] logger = FakeLogger() sys.stdin = StringIO("N\n") main(logger=logger) assert "INFO Found 3 forms under " + osep + "repo" == logger.lines[1] assert "INFO 2 Forms out of 3 were changed" == logger.lines[2] assert "INFO 4 textfields changed in total" == logger.lines[3] assert "DEBUG Form " + osep + "repo" + osep + "FormExample.xml has 3 Textfields" == logger.debug_lines[ 1] assert "DEBUG Representation was added to the following Texfields:"\ "['txtAddress', 'txtCity']" == logger.debug_lines[2] assert "DEBUG Form " + osep + "repo" + osep + "FormExampleNoTxtFields.xml has 0 Textfields" == logger.debug_lines[ 3] assert "DEBUG Form " + osep + "repo" + osep + "FormExampleTwoTxtFields.xml has 2 Textfields" == logger.debug_lines[ 4] assert "DEBUG Representation was added to the following Texfields:"\ "['txtTransactionType', 'txtTotalAmount']" == logger.debug_lines[5]
def test_replace_formProcess_popup(): logger = FakeLogger() source = full_path("processExamples/FormProcessQuestionPopup.xml") package_entry = SourceObjectParser().parse(source) popupquestion = package_entry.process_definition.find("PopupQuestionNode") assert "Error" == popupquestion.get("question") replace(logger, os.path.dirname(source)) package_entry = SourceObjectParser().parse(source) data_flow = package_entry.process_definition.find("DataFlow") assert "fieldStore0" == data_flow.find("FromNode").get("name") assert "invalidUsername" == data_flow.find("ToNode").get("name") data_flow_entries = data_flow.findall("DataFlowEntry") line1_from = data_flow_entries[0].find("FromField") parameter_assigment = line1_from.find("ParameterAssignment") assert "0" == parameter_assigment.get("exceptionStrategy") assert "EcmaScript" == parameter_assigment.get("language") assert "" == parameter_assigment.get("name") assert "" == parameter_assigment.get("version") verbatim = parameter_assigment.find("Verbatim") assert "text" == verbatim.get("fieldName") assert '"The usename is not valid"' ==\ verbatim.text.strip() message_type = data_flow_entries[1].find("FromField") parameter_assigment = message_type.find("ParameterAssignment") assert "0" == parameter_assigment.get("exceptionStrategy") assert "EcmaScript" == parameter_assigment.get("language") assert "" == parameter_assigment.get("name") assert "" == parameter_assigment.get("version") verbatim = parameter_assigment.find("Verbatim") assert "text" == verbatim.get("fieldName") assert 'MessageDialog.ERROR_TYPE' ==\ verbatim.text.strip()
def test_user_cancel_does_not_write_to_disk(fs): setup_fs(fs, ["FormExampleTwoTxtFields.xml"]) sys.stdin = StringIO("N\n") logger = FakeLogger() main(logger) form = Form("repo" + osep + "FormExampleTwoTxtFields.xml") assert "GT_WEB" not in form.textfields[ "txtTransactionType"].representations assert "GT_WEB" not in form.textfields["txtTotalAmount"].representations
def test_user_confirms_writes_to_disk(fs): setup_fs(fs, ["FormExampleTwoTxtFields.xml"]) sys.stdin = StringIO("Y\n") logger = FakeLogger() main(logger) form = Form("repo" + osep + "FormExampleTwoTxtFields.xml") assert "GT_WEBTextField" == form.textfields[ "txtTransactionType"].representations["GT_WEB"].attrib["name"] assert "GT_WEBTextField" == form.textfields[ "txtTotalAmount"].representations["GT_WEB"].attrib["name"]
def test_read_fromfile_popup(): logger = FakeLogger() source = full_path("processExamples/SimpleValidationQuestionPopup.xml") script_dir = os.path.dirname(__file__) paths_file = script_dir + "/tmp/my_paths.txt" with open(paths_file, 'w') as f: f.write(source) package_entry = SourceObjectParser().parse(source) replace(logger, file_with_paths=paths_file) message = "Replacing 1 popup(s) for '/home/dgarcia/dev/python/cedtask/test/tmp/test_processes/processExamples/SimpleValidationQuestionPopup.xml'" assert "INFO " + message == logger.lines[1] package_entry = SourceObjectParser().parse(source) data_flow = package_entry.process_definition.find("DataFlow") assert "fieldStore0" == data_flow.find("FromNode").get("name")
def test_replaces_multiple_popups(): logger = FakeLogger() source = full_path("processExamples/MultiplePopups.xml") package_entry = SourceObjectParser().parse(source) assert 2 == len( list(package_entry.process_definition.findall("PopupQuestionNode"))) replace(logger, os.path.dirname(source)) assert "INFO Replacing 2 popup(s) for '" + source + "'" == logger.lines[1] assert "INFO 1 Processes found containing PopupQuestions" == logger.lines[ 2] package_entry = SourceObjectParser().parse(source) assert "FrameworkCommon.API.PopUpQuestion.MessageDialog" in package_entry.imports( ) assert None == package_entry.process_definition.find("PopupQuestionNode") assert 1 == len(package_entry.process_definition.findall("ThisNode"))
def test_replace_inner_process(): logger = FakeLogger() source = full_path( "processExamples/MainProcess/ValidationProcess/SubValidationProcess.xml" ) parent = full_path("processExamples/MainProcess/ValidationProcess.xml") main = full_path("processExamples/MainProcess.xml") process_definition = SourceObjectParser().parse(source) assert process_definition.root.find("PopupQuestionNode") is not None replace(logger, os.path.dirname(source)) process_definition = SourceObjectParser().parse(source) assert None == process_definition.root.find("PopupQuestionNode") main_process = SourceObjectParser().parse(main) assert "FrameworkCommon.API.PopUpQuestion.MessageDialog" in main_process.imports( ) assert "INFO 1 Processes found containing PopupQuestions" == logger.lines[ 2]
def test_replace_inner_formProcess_popup(): logger = FakeLogger() source = full_path("processExamples/MainProcess/ValidationFormProcess.xml") main = full_path("processExamples/MainProcess.xml") form_process = SourceObjectParser().parse(source) popupquestion = form_process.process_definition.find("PopupQuestionNode") assert "Error" == popupquestion.get("question") replace(logger, os.path.dirname(source)) package_entry = SourceObjectParser().parse(source) assert ["FrameworkCommon.API.PopUpQuestion.MessageDialog" ] == package_entry.get_main_process().imports() data_flow = package_entry.process_definition.find("DataFlow") assert "fieldStore0" == data_flow.find("FromNode").get("name") assert "invalidPassword" == data_flow.find("ToNode").get("name") data_flow_entries = data_flow.findall("DataFlowEntry") line1_from = data_flow_entries[0].find("FromField") parameter_assigment = line1_from.find("ParameterAssignment") assert "0" == parameter_assigment.get("exceptionStrategy") assert "EcmaScript" == parameter_assigment.get("language") assert "" == parameter_assigment.get("name") assert "" == parameter_assigment.get("version") verbatim = parameter_assigment.find("Verbatim") assert "text" == verbatim.get("fieldName") assert '"Please make sure you password is correct"' ==\ verbatim.text.strip() message_type = data_flow_entries[1].find("FromField") parameter_assigment = message_type.find("ParameterAssignment") assert "0" == parameter_assigment.get("exceptionStrategy") assert "EcmaScript" == parameter_assigment.get("language") assert "" == parameter_assigment.get("name") assert "" == parameter_assigment.get("version") verbatim = parameter_assigment.find("Verbatim") assert "text" == verbatim.get("fieldName") assert 'MessageDialog.ERROR_TYPE' ==\ verbatim.text.strip()
def test_no_forms(fs): logger = FakeLogger() main(logger) assert "INFO Found 0 forms under " + osep + "repo" == logger.lines[1] assert "INFO 0 Forms out of 0 were changed" == logger.lines[2] assert "INFO 0 textfields changed in total" == logger.lines[3]
def test_replaces_one_popup(): logger = FakeLogger() source = full_path(validation_process) package_entry = SourceObjectParser().parse(source) assert package_entry.process_definition.find( "PopupQuestionNode") is not None assert "noCustomersFound" == package_entry.process_definition.find( "PopupQuestionNode").get("name") assert "198" == package_entry.process_definition.find( "PopupQuestionNode").get("x") assert "48" == package_entry.process_definition.find( "PopupQuestionNode").get("y") replace(logger, os.path.dirname(source)) assert "INFO 1 Processes found containing PopupQuestions" == logger.lines[ 2] assert "INFO Replacing 1 popup(s) for '" + source + "'" == logger.lines[1] package_entry = SourceObjectParser().parse(source) assert "FrameworkCommon.API.PopUpQuestion.MessageDialog" in package_entry.imports( ) assert None == package_entry.process_definition.find("PopupQuestionNode") message_dialog_node = package_entry.process_definition.find("ChildProcess") assert message_dialog_node is not None assert "MessageDialog" == message_dialog_node.find( "ProcessDefinitionReference").get("name") assert "fieldStore0" == package_entry.process_definition.find( "ThisNode").get("name") assert "148" == package_entry.process_definition.find("ThisNode").get("x") assert "128" == package_entry.process_definition.find("ThisNode").get("y") data_flow = package_entry.process_definition.find("DataFlow") assert "fieldStore0" == data_flow.find("FromNode").get("name") assert "noCustomersFound" == data_flow.find("ToNode").get("name") data_flow_entries = data_flow.findall("DataFlowEntry") line1_from = data_flow_entries[0].find("FromField") parameter_assigment = line1_from.find("ParameterAssignment") assert "0" == parameter_assigment.get("exceptionStrategy") assert "EcmaScript" == parameter_assigment.get("language") assert "" == parameter_assigment.get("name") assert "" == parameter_assigment.get("version") verbatim = parameter_assigment.find("Verbatim") assert "text" == verbatim.get("fieldName") text = '"The search criteria retrieved no Customers"' assert text==\ verbatim.text.strip() message_type = data_flow_entries[1].find("FromField") parameter_assigment = message_type.find("ParameterAssignment") assert "0" == parameter_assigment.get("exceptionStrategy") assert "EcmaScript" == parameter_assigment.get("language") assert "" == parameter_assigment.get("name") assert "" == parameter_assigment.get("version") verbatim = parameter_assigment.find("Verbatim") assert "text" == verbatim.get("fieldName") assert 'MessageDialog.INFORMATION_TYPE' ==\ verbatim.text.strip() line1 = data_flow.find("DataFlowEntry").find("ToField") assert "line1" == line1.find("FieldDefinitionReference").get("name") assert "The search criteria retrieved no Customers" graph_node_list = data_flow.find("GraphNodeList") assert "" == graph_node_list.get("name") graph_node = graph_node_list.find("GraphNode") assert "" == graph_node.get("icon") assert "true" == graph_node.get("isLabelHolder") assert "" == graph_node.get("label") assert "" == graph_node.get("name") assert "198" == graph_node.get("x") assert "128" == graph_node.get("y")
def test_ignore_processes_without_popup_nodes(): logger = FakeLogger() target = full_path("processExamples/EmptyProcess.xml") replace(logger, target) assert "INFO " + no_process_found_msg == logger.lines[1]
def test_nothing_found(): logger = FakeLogger() replace(logger, "/pc/config") assert "INFO " + no_process_found_msg == logger.lines[1]