PyBreeze 1.0.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. automation_ide/__init__.py +7 -0
  2. automation_ide/__main__.py +0 -0
  3. automation_ide/automation_editor_ui/__init__.py +0 -0
  4. automation_ide/automation_editor_ui/connect_gui/__init__.py +0 -0
  5. automation_ide/automation_editor_ui/connect_gui/ssh/__init__.py +0 -0
  6. automation_ide/automation_editor_ui/connect_gui/ssh/ssh_command_widget.py +246 -0
  7. automation_ide/automation_editor_ui/connect_gui/ssh/ssh_file_viewer_widget.py +501 -0
  8. automation_ide/automation_editor_ui/connect_gui/ssh/ssh_login_widget.py +67 -0
  9. automation_ide/automation_editor_ui/connect_gui/ssh/ssh_main_widget.py +49 -0
  10. automation_ide/automation_editor_ui/connect_gui/url/__init__.py +0 -0
  11. automation_ide/automation_editor_ui/connect_gui/url/ai_code_review_gui.py +177 -0
  12. automation_ide/automation_editor_ui/editor_main/__init__.py +0 -0
  13. automation_ide/automation_editor_ui/editor_main/main_ui.py +104 -0
  14. automation_ide/automation_editor_ui/extend_ai_gui/__init__.py +0 -0
  15. automation_ide/automation_editor_ui/extend_ai_gui/ai_gui_global_variable.py +40 -0
  16. automation_ide/automation_editor_ui/extend_ai_gui/code_review/__init__.py +0 -0
  17. automation_ide/automation_editor_ui/extend_ai_gui/code_review/code_review_thread.py +81 -0
  18. automation_ide/automation_editor_ui/extend_ai_gui/code_review/cot_code_review_gui.py +82 -0
  19. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/__init__.py +0 -0
  20. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/__init__.py +0 -0
  21. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/code_smell_detector.py +22 -0
  22. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_code_review.py +17 -0
  23. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_summary_prompt.py +17 -0
  24. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/global_rule.py +59 -0
  25. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge.py +91 -0
  26. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge_single_review.py +85 -0
  27. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/linter.py +17 -0
  28. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/step_by_step_analysis.py +35 -0
  29. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/total_summary.py +66 -0
  30. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_prompt_editor_widget.py +136 -0
  31. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_editor_widget.py +136 -0
  32. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/__init__.py +0 -0
  33. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_explainer.py +21 -0
  34. automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_review.py +37 -0
  35. automation_ide/automation_editor_ui/extend_ai_gui/skills/__init__.py +0 -0
  36. automation_ide/automation_editor_ui/extend_ai_gui/skills/skills_send_gui.py +98 -0
  37. automation_ide/automation_editor_ui/extend_multi_language/__init__.py +0 -0
  38. automation_ide/automation_editor_ui/extend_multi_language/extend_english.py +272 -0
  39. automation_ide/automation_editor_ui/extend_multi_language/extend_traditional_chinese.py +272 -0
  40. automation_ide/automation_editor_ui/extend_multi_language/update_language_dict.py +8 -0
  41. automation_ide/automation_editor_ui/menu/__init__.py +0 -0
  42. automation_ide/automation_editor_ui/menu/automation_menu/__init__.py +0 -0
  43. automation_ide/automation_editor_ui/menu/automation_menu/api_testka_menu/__init__.py +0 -0
  44. automation_ide/automation_editor_ui/menu/automation_menu/api_testka_menu/build_api_testka_menu.py +137 -0
  45. automation_ide/automation_editor_ui/menu/automation_menu/auto_control_menu/__init__.py +0 -0
  46. automation_ide/automation_editor_ui/menu/automation_menu/auto_control_menu/build_autocontrol_menu.py +169 -0
  47. automation_ide/automation_editor_ui/menu/automation_menu/automation_file_menu/__init__.py +0 -0
  48. automation_ide/automation_editor_ui/menu/automation_menu/automation_file_menu/build_automation_file_menu.py +122 -0
  49. automation_ide/automation_editor_ui/menu/automation_menu/load_density_menu/__init__.py +0 -0
  50. automation_ide/automation_editor_ui/menu/automation_menu/load_density_menu/build_load_density_menu.py +137 -0
  51. automation_ide/automation_editor_ui/menu/automation_menu/mail_thunder_menu/__init__.py +0 -0
  52. automation_ide/automation_editor_ui/menu/automation_menu/mail_thunder_menu/build_mail_thunder_menu.py +88 -0
  53. automation_ide/automation_editor_ui/menu/automation_menu/test_pioneer_menu/__init__.py +0 -0
  54. automation_ide/automation_editor_ui/menu/automation_menu/test_pioneer_menu/build_test_pioneer_menu.py +62 -0
  55. automation_ide/automation_editor_ui/menu/automation_menu/web_runner_menu/__init__.py +0 -0
  56. automation_ide/automation_editor_ui/menu/automation_menu/web_runner_menu/build_webrunner_menu.py +119 -0
  57. automation_ide/automation_editor_ui/menu/build_menubar.py +47 -0
  58. automation_ide/automation_editor_ui/menu/install_menu/__init__.py +0 -0
  59. automation_ide/automation_editor_ui/menu/install_menu/automation_menu/__init__.py +0 -0
  60. automation_ide/automation_editor_ui/menu/install_menu/automation_menu/build_automation_install_menu.py +82 -0
  61. automation_ide/automation_editor_ui/menu/install_menu/install_utils.py +21 -0
  62. automation_ide/automation_editor_ui/menu/install_menu/tools_menu/__init__.py +0 -0
  63. automation_ide/automation_editor_ui/menu/install_menu/tools_menu/build_tool_install_menu.py +29 -0
  64. automation_ide/automation_editor_ui/menu/menu_utils.py +16 -0
  65. automation_ide/automation_editor_ui/menu/tools/__init__.py +0 -0
  66. automation_ide/automation_editor_ui/menu/tools/tools_menu.py +162 -0
  67. automation_ide/automation_editor_ui/show_code_window/__init__.py +0 -0
  68. automation_ide/automation_editor_ui/show_code_window/code_window.py +21 -0
  69. automation_ide/automation_editor_ui/syntax/__init__.py +0 -0
  70. automation_ide/automation_editor_ui/syntax/syntax_extend.py +40 -0
  71. automation_ide/automation_editor_ui/syntax/syntax_keyword.py +163 -0
  72. automation_ide/extend/__init__.py +0 -0
  73. automation_ide/extend/mail_thunder_extend/__init__.py +0 -0
  74. automation_ide/extend/mail_thunder_extend/mail_thunder_setting.py +36 -0
  75. automation_ide/extend/process_executor/__init__.py +0 -0
  76. automation_ide/extend/process_executor/api_testka/__init__.py +0 -0
  77. automation_ide/extend/process_executor/api_testka/api_testka_process.py +66 -0
  78. automation_ide/extend/process_executor/auto_control/__init__.py +0 -0
  79. automation_ide/extend/process_executor/auto_control/auto_control_process.py +62 -0
  80. automation_ide/extend/process_executor/file_automation/__init__.py +0 -0
  81. automation_ide/extend/process_executor/file_automation/file_automation_process.py +66 -0
  82. automation_ide/extend/process_executor/load_density/__init__.py +0 -0
  83. automation_ide/extend/process_executor/load_density/load_density_process.py +66 -0
  84. automation_ide/extend/process_executor/mail_thunder/__init__.py +0 -0
  85. automation_ide/extend/process_executor/mail_thunder/mail_thunder_process.py +16 -0
  86. automation_ide/extend/process_executor/process_executor_utils.py +72 -0
  87. automation_ide/extend/process_executor/python_task_process_manager.py +177 -0
  88. automation_ide/extend/process_executor/test_pioneer/__init__.py +0 -0
  89. automation_ide/extend/process_executor/test_pioneer/test_pioneer_process_manager.py +181 -0
  90. automation_ide/extend/process_executor/web_runner/__init__.py +0 -0
  91. automation_ide/extend/process_executor/web_runner/web_runner_process.py +66 -0
  92. automation_ide/utils/__init__.py +0 -0
  93. automation_ide/utils/exception/__init__.py +0 -0
  94. automation_ide/utils/exception/exception_tags.py +37 -0
  95. automation_ide/utils/exception/exceptions.py +50 -0
  96. automation_ide/utils/file_process/__init__.py +0 -0
  97. automation_ide/utils/file_process/get_dir_file_list.py +29 -0
  98. automation_ide/utils/json_format/__init__.py +1 -0
  99. automation_ide/utils/json_format/json_process.py +28 -0
  100. automation_ide/utils/logging/__init__.py +0 -0
  101. automation_ide/utils/logging/logger.py +50 -0
  102. automation_ide/utils/manager/__init__.py +0 -0
  103. automation_ide/utils/manager/package_manager/__init__.py +0 -0
  104. automation_ide/utils/manager/package_manager/package_manager_class.py +18 -0
  105. pybreeze-1.0.4.dist-info/METADATA +69 -0
  106. pybreeze-1.0.4.dist-info/RECORD +109 -0
  107. pybreeze-1.0.4.dist-info/WHEEL +5 -0
  108. pybreeze-1.0.4.dist-info/licenses/LICENSE +21 -0
  109. pybreeze-1.0.4.dist-info/top_level.txt +1 -0
@@ -0,0 +1,122 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from je_editor import language_wrapper
6
+
7
+ from automation_ide.automation_editor_ui.menu.menu_utils import open_web_browser
8
+
9
+ if TYPE_CHECKING:
10
+ from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
11
+ import sys
12
+
13
+ from PySide6.QtGui import QAction
14
+
15
+ from automation_ide.extend.process_executor.file_automation.file_automation_process import call_file_automation_test, \
16
+ call_file_automation_test_with_send, call_file_automation_test_multi_file, \
17
+ call_file_automation_test_multi_file_and_send
18
+
19
+
20
+ def set_automation_file_menu(ui_we_want_to_set: AutomationEditor):
21
+ """
22
+ Build menu include WebRunner feature.
23
+ :param ui_we_want_to_set: main window to add menu.
24
+ :return: None
25
+ """
26
+ ui_we_want_to_set.automation_file_menu = ui_we_want_to_set.automation_menu.addMenu(
27
+ language_wrapper.language_word_dict.get("file_automation_menu_label"))
28
+ ui_we_want_to_set.automation_run_file_menu = ui_we_want_to_set.automation_file_menu.addMenu(
29
+ language_wrapper.language_word_dict.get("run_label"))
30
+ # Run FileAutomation Script
31
+ ui_we_want_to_set.run_file_automation_action = QAction(
32
+ language_wrapper.language_word_dict.get("file_automation_run_script_label"))
33
+ ui_we_want_to_set.run_file_automation_action.triggered.connect(
34
+ lambda: call_file_automation_test(
35
+ ui_we_want_to_set,
36
+ )
37
+ )
38
+ ui_we_want_to_set.automation_run_file_menu.addAction(ui_we_want_to_set.run_file_automation_action)
39
+ # Run FileAutomation Script With Send
40
+ ui_we_want_to_set.run_file_automation_action_with_send = QAction(
41
+ language_wrapper.language_word_dict.get("file_automation_run_script_with_send_label"))
42
+ ui_we_want_to_set.run_file_automation_action_with_send.triggered.connect(
43
+ lambda: call_file_automation_test_with_send(
44
+ ui_we_want_to_set,
45
+ )
46
+ )
47
+ ui_we_want_to_set.automation_run_file_menu.addAction(
48
+ ui_we_want_to_set.run_file_automation_action_with_send
49
+ )
50
+ # Run Multi FileAutomation Script
51
+ ui_we_want_to_set.run_multi_file_automation_action = QAction(
52
+ language_wrapper.language_word_dict.get("file_automation_run_multi_script_label"))
53
+ ui_we_want_to_set.run_multi_file_automation_action.triggered.connect(
54
+ lambda: call_file_automation_test_multi_file(
55
+ ui_we_want_to_set,
56
+ )
57
+ )
58
+ ui_we_want_to_set.automation_run_file_menu.addAction(
59
+ ui_we_want_to_set.run_multi_file_automation_action
60
+ )
61
+ # Run Multi FileAutomation Script With Send
62
+ ui_we_want_to_set.run_multi_file_automation_action_with_send = QAction(
63
+ language_wrapper.language_word_dict.get("file_automation_run_multi_script_with_send_label"))
64
+ ui_we_want_to_set.run_multi_file_automation_action_with_send.triggered.connect(
65
+ lambda: call_file_automation_test_multi_file_and_send(
66
+ ui_we_want_to_set,
67
+ )
68
+ )
69
+ ui_we_want_to_set.automation_run_file_menu.addAction(
70
+ ui_we_want_to_set.run_multi_file_automation_action_with_send
71
+ )
72
+ ui_we_want_to_set.file_automation_help_menu = ui_we_want_to_set.automation_file_menu.addMenu(
73
+ language_wrapper.language_word_dict.get("help_label")
74
+ )
75
+ # Open Doc
76
+ ui_we_want_to_set.open_file_automation_doc_action = QAction(
77
+ language_wrapper.language_word_dict.get("file_automation_doc_label"))
78
+ ui_we_want_to_set.open_file_automation_doc_action.triggered.connect(
79
+ lambda: open_web_browser(
80
+ ui_we_want_to_set,
81
+ "https://fileautomation.readthedocs.io/en/latest/",
82
+ language_wrapper.language_word_dict.get("file_automation_doc_tab_label")
83
+ )
84
+ )
85
+ ui_we_want_to_set.file_automation_help_menu.addAction(
86
+ ui_we_want_to_set.open_file_automation_doc_action
87
+ )
88
+ # Open Github
89
+ ui_we_want_to_set.open_file_automation_github_action = QAction(
90
+ language_wrapper.language_word_dict.get("file_automation_github_label"))
91
+ ui_we_want_to_set.open_file_automation_github_action.triggered.connect(
92
+ lambda: open_web_browser(
93
+ ui_we_want_to_set,
94
+ "https://github.com/Integration-Automation/FileAutomation",
95
+ language_wrapper.language_word_dict.get("file_automation_github_tab_label")
96
+ )
97
+ )
98
+ ui_we_want_to_set.file_automation_help_menu.addAction(
99
+ ui_we_want_to_set.open_file_automation_github_action
100
+ )
101
+ ui_we_want_to_set.file_automation_project_menu = ui_we_want_to_set.automation_file_menu.addMenu(
102
+ language_wrapper.language_word_dict.get("project_label")
103
+ )
104
+ # Create Project
105
+ ui_we_want_to_set.create_web_runner_project_action = QAction(
106
+ language_wrapper.language_word_dict.get("file_automation_create_project_label"))
107
+ ui_we_want_to_set.create_web_runner_project_action.triggered.connect(
108
+ create_project
109
+ )
110
+ ui_we_want_to_set.file_automation_project_menu.addAction(
111
+ ui_we_want_to_set.create_web_runner_project_action
112
+ )
113
+
114
+
115
+ def create_project() -> None:
116
+ try:
117
+ import file_automation
118
+ package = file_automation
119
+ if package is not None:
120
+ package.create_project_dir()
121
+ except ImportError as error:
122
+ print(repr(error), file=sys.stderr)
@@ -0,0 +1,137 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from je_editor import language_wrapper
6
+ from je_load_density.gui.main_widget import LoadDensityWidget
7
+
8
+ from automation_ide.automation_editor_ui.menu.menu_utils import open_web_browser
9
+
10
+ if TYPE_CHECKING:
11
+ from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
12
+ import sys
13
+
14
+ from PySide6.QtGui import QAction
15
+
16
+ from automation_ide.extend.process_executor.load_density.load_density_process import \
17
+ call_load_density, call_load_density_with_send, call_load_density_multi_file, \
18
+ call_load_density_multi_file_and_send
19
+
20
+
21
+ def set_load_density_menu(ui_we_want_to_set: AutomationEditor):
22
+ """
23
+ Build menu include LoadDensity feature.
24
+ :param ui_we_want_to_set: main window to add menu.
25
+ :return: None
26
+ """
27
+ ui_we_want_to_set.load_density_menu = ui_we_want_to_set.automation_menu.addMenu(
28
+ language_wrapper.language_word_dict.get("load_density_menu_label"))
29
+ ui_we_want_to_set.load_density_run_menu = ui_we_want_to_set.load_density_menu.addMenu(
30
+ language_wrapper.language_word_dict.get("run_label"))
31
+ # Run LoadDensity Script
32
+ ui_we_want_to_set.run_load_density_action = QAction(
33
+ language_wrapper.language_word_dict.get("load_density_run_script_label"))
34
+ ui_we_want_to_set.run_load_density_action.triggered.connect(
35
+ lambda: call_load_density(
36
+ ui_we_want_to_set,
37
+ )
38
+ )
39
+ ui_we_want_to_set.load_density_run_menu.addAction(ui_we_want_to_set.run_load_density_action)
40
+ # Run LoadDensity Script With Send
41
+ ui_we_want_to_set.run_load_density_action_with_send = QAction(
42
+ language_wrapper.language_word_dict.get("load_density_run_script_with_send_label"))
43
+ ui_we_want_to_set.run_load_density_action_with_send.triggered.connect(
44
+ lambda: call_load_density_with_send(
45
+ ui_we_want_to_set,
46
+ )
47
+ )
48
+ ui_we_want_to_set.load_density_run_menu.addAction(
49
+ ui_we_want_to_set.run_load_density_action_with_send
50
+ )
51
+ # Run Multi LoadDensity Script
52
+ ui_we_want_to_set.run_multi_load_density_action = QAction(
53
+ language_wrapper.language_word_dict.get("load_density_run_multi_script_label"))
54
+ ui_we_want_to_set.run_multi_load_density_action.triggered.connect(
55
+ lambda: call_load_density_multi_file(
56
+ ui_we_want_to_set,
57
+ )
58
+ )
59
+ ui_we_want_to_set.load_density_run_menu.addAction(
60
+ ui_we_want_to_set.run_multi_load_density_action
61
+ )
62
+ # Run Multi LoadDensity Script With Send
63
+ ui_we_want_to_set.run_multi_load_density_action_with_send = QAction(
64
+ language_wrapper.language_word_dict.get("load_density_run_multi_script_with_send_label"))
65
+ ui_we_want_to_set.run_multi_load_density_action_with_send.triggered.connect(
66
+ lambda: call_load_density_multi_file_and_send(
67
+ ui_we_want_to_set,
68
+ )
69
+ )
70
+ ui_we_want_to_set.load_density_run_menu.addAction(
71
+ ui_we_want_to_set.run_multi_load_density_action_with_send
72
+ )
73
+ ui_we_want_to_set.load_density_help_menu = ui_we_want_to_set.load_density_menu.addMenu(
74
+ language_wrapper.language_word_dict.get("help_label"))
75
+ # Open Doc
76
+ ui_we_want_to_set.open_load_density_doc_action = QAction(
77
+ language_wrapper.language_word_dict.get("load_density_doc_label"))
78
+ ui_we_want_to_set.open_load_density_doc_action.triggered.connect(
79
+ lambda: open_web_browser(
80
+ ui_we_want_to_set,
81
+ "https://loaddensity.readthedocs.io/en/latest/",
82
+ language_wrapper.language_word_dict.get("load_density_doc_tab_label")
83
+ )
84
+ )
85
+ ui_we_want_to_set.load_density_help_menu.addAction(
86
+ ui_we_want_to_set.open_load_density_doc_action
87
+ )
88
+ # Open Github
89
+ ui_we_want_to_set.open_load_density_github_action = QAction(
90
+ language_wrapper.language_word_dict.get("load_density_github_label"))
91
+ ui_we_want_to_set.open_load_density_github_action.triggered.connect(
92
+ lambda: open_web_browser(
93
+ ui_we_want_to_set,
94
+ "https://github.com/Intergration-Automation-Testing/LoadDensity",
95
+ language_wrapper.language_word_dict.get("load_density_github_tab_label")
96
+ )
97
+ )
98
+ ui_we_want_to_set.load_density_help_menu.addAction(
99
+ ui_we_want_to_set.open_load_density_github_action
100
+ )
101
+ ui_we_want_to_set.load_density_project_menu = ui_we_want_to_set.load_density_menu.addMenu(
102
+ language_wrapper.language_word_dict.get("project_label"))
103
+ # Create Project
104
+ ui_we_want_to_set.create_load_density_project_action = QAction(
105
+ language_wrapper.language_word_dict.get("load_density_create_project_label"))
106
+ ui_we_want_to_set.create_load_density_project_action.triggered.connect(
107
+ create_project
108
+ )
109
+ ui_we_want_to_set.load_density_project_menu.addAction(
110
+ ui_we_want_to_set.create_load_density_project_action
111
+ )
112
+ # AutoControl GUI
113
+ ui_we_want_to_set.load_density_gui_action = QAction(
114
+ "LoadDensity GUI"
115
+ )
116
+ ui_we_want_to_set.load_density_gui_action.triggered.connect(
117
+ lambda: add_load_density_gui(ui_we_want_to_set)
118
+ )
119
+ ui_we_want_to_set.load_density_menu.addAction(
120
+ ui_we_want_to_set.load_density_gui_action
121
+ )
122
+
123
+
124
+ def create_project() -> None:
125
+ try:
126
+ import je_load_density
127
+ package = je_load_density
128
+ if package is not None:
129
+ package.create_project_dir()
130
+ except ImportError as error:
131
+ print(repr(error), file=sys.stderr)
132
+
133
+
134
+ def add_load_density_gui(ui_we_want_to_set: AutomationEditor) -> None:
135
+ ui_we_want_to_set.tab_widget.addTab(
136
+ LoadDensityWidget(), "LoadDensity GUI"
137
+ )
@@ -0,0 +1,88 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from je_editor import language_wrapper
6
+
7
+ from automation_ide.automation_editor_ui.menu.menu_utils import open_web_browser
8
+
9
+ if TYPE_CHECKING:
10
+ from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
11
+ import sys
12
+
13
+ from PySide6.QtGui import QAction
14
+
15
+ from automation_ide.extend.process_executor.mail_thunder.mail_thunder_process import call_mail_thunder
16
+
17
+
18
+ def set_mail_thunder_menu(ui_we_want_to_set: AutomationEditor):
19
+ """
20
+ Build menu include LoadDensity feature.
21
+ :param ui_we_want_to_set: main window to add menu.
22
+ :return: None
23
+ """
24
+ ui_we_want_to_set.mail_thunder_menu = ui_we_want_to_set.automation_menu.addMenu(
25
+ language_wrapper.language_word_dict.get("mail_thunder_menu_label"))
26
+ ui_we_want_to_set.mail_thunder_run_menu = ui_we_want_to_set.mail_thunder_menu.addMenu(
27
+ language_wrapper.language_word_dict.get("run_label"))
28
+ # Run MailThunder
29
+ ui_we_want_to_set.run_mail_thunder_action = QAction(
30
+ language_wrapper.language_word_dict.get("mail_thunder_run_script_label"))
31
+ ui_we_want_to_set.run_mail_thunder_action.triggered.connect(
32
+ lambda: call_mail_thunder(
33
+ ui_we_want_to_set,
34
+ )
35
+ )
36
+ ui_we_want_to_set.mail_thunder_run_menu.addAction(
37
+ ui_we_want_to_set.run_mail_thunder_action
38
+ )
39
+ # Help menu
40
+ ui_we_want_to_set.mail_thunder_help_menu = ui_we_want_to_set.mail_thunder_menu.addMenu(
41
+ language_wrapper.language_word_dict.get("help_label"))
42
+ # Open Doc
43
+ ui_we_want_to_set.open_mail_thunder_doc_action = QAction(
44
+ language_wrapper.language_word_dict.get("mail_thunder_doc_label"))
45
+ ui_we_want_to_set.open_mail_thunder_doc_action.triggered.connect(
46
+ lambda: open_web_browser(
47
+ ui_we_want_to_set,
48
+ "https://mailthunder.readthedocs.io/en/latest/",
49
+ language_wrapper.language_word_dict.get("mail_thunder_doc_tab_label")
50
+ )
51
+ )
52
+ ui_we_want_to_set.mail_thunder_help_menu.addAction(
53
+ ui_we_want_to_set.open_mail_thunder_doc_action
54
+ )
55
+ # Open Github
56
+ ui_we_want_to_set.open_mail_thunder_github_action = QAction(
57
+ language_wrapper.language_word_dict.get("mail_thunder_github_label"))
58
+ ui_we_want_to_set.open_mail_thunder_github_action.triggered.connect(
59
+ lambda: open_web_browser(
60
+ ui_we_want_to_set,
61
+ "https://github.com/Integration-Automation/MailThunder",
62
+ language_wrapper.language_word_dict.get("mail_thunder_github_tab_label")
63
+ )
64
+ )
65
+ ui_we_want_to_set.mail_thunder_help_menu.addAction(
66
+ ui_we_want_to_set.open_mail_thunder_github_action
67
+ )
68
+ ui_we_want_to_set.mail_thunder_project_menu = ui_we_want_to_set.mail_thunder_menu.addMenu(
69
+ language_wrapper.language_word_dict.get("project_label"))
70
+ # Create Project
71
+ ui_we_want_to_set.create_mail_thunder_project_action = QAction(
72
+ language_wrapper.language_word_dict.get("mail_thunder_create_project_label"))
73
+ ui_we_want_to_set.create_mail_thunder_project_action.triggered.connect(
74
+ create_project
75
+ )
76
+ ui_we_want_to_set.mail_thunder_project_menu.addAction(
77
+ ui_we_want_to_set.create_mail_thunder_project_action
78
+ )
79
+
80
+
81
+ def create_project() -> None:
82
+ try:
83
+ import je_mail_thunder
84
+ package = je_mail_thunder
85
+ if package is not None:
86
+ package.create_project_dir()
87
+ except ImportError as error:
88
+ print(repr(error), file=sys.stderr)
@@ -0,0 +1,62 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+ from typing import TYPE_CHECKING
5
+
6
+ from PySide6.QtWidgets import QFileDialog, QMessageBox
7
+
8
+ from automation_ide.extend.process_executor.test_pioneer.test_pioneer_process_manager import \
9
+ init_and_start_test_pioneer_process
10
+
11
+ if TYPE_CHECKING:
12
+ from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
13
+
14
+ from PySide6.QtGui import QAction
15
+ from je_editor import language_wrapper
16
+ from test_pioneer import create_template_dir
17
+
18
+
19
+ def set_test_pioneer_menu(ui_we_want_to_set: AutomationEditor):
20
+ """
21
+ Build menu include Test Pioneer feature.
22
+ :param ui_we_want_to_set: main window to add menu.
23
+ :return: None
24
+ """
25
+ ui_we_want_to_set.test_pioneer_menu = ui_we_want_to_set.automation_menu.addMenu(
26
+ language_wrapper.language_word_dict.get("test_pioneer_label"))
27
+ # Create test pioneer template
28
+ ui_we_want_to_set.create_template_action = QAction(
29
+ language_wrapper.language_word_dict.get("test_pioneer_create_template_label"))
30
+ ui_we_want_to_set.create_template_action.triggered.connect(
31
+ lambda: create_template_dir()
32
+ )
33
+ ui_we_want_to_set.test_pioneer_menu.addAction(
34
+ ui_we_want_to_set.create_template_action
35
+ )
36
+ # Run test pioneer yaml
37
+ ui_we_want_to_set.run_yaml_action = QAction(
38
+ language_wrapper.language_word_dict.get("test_pioneer_run_yaml"))
39
+ ui_we_want_to_set.run_yaml_action.triggered.connect(
40
+ lambda: check_file(ui_we_want_to_set)
41
+ )
42
+ ui_we_want_to_set.test_pioneer_menu.addAction(
43
+ ui_we_want_to_set.run_yaml_action
44
+ )
45
+
46
+
47
+ def check_file(ui_we_want_to_set: AutomationEditor):
48
+ dialog = QFileDialog(ui_we_want_to_set)
49
+ dialog.setNameFilter("Yaml (*.yml)")
50
+ file_tuple = dialog.getOpenFileName()
51
+ show_messagebox = False
52
+ if file_tuple:
53
+ file_path = file_tuple[0]
54
+ if Path(file_path).is_file() and Path(file_path).suffix == ".yml":
55
+ init_and_start_test_pioneer_process(ui_we_want_to_set, file_path)
56
+ else:
57
+ show_messagebox = True
58
+ if show_messagebox:
59
+ messagebox = QMessageBox(ui_we_want_to_set)
60
+ messagebox.setWindowTitle(language_wrapper.language_word_dict.get("test_pioneer_not_choose_yaml"))
61
+ messagebox.setText(language_wrapper.language_word_dict.get("test_pioneer_not_choose_yaml"))
62
+ messagebox.exec_()
@@ -0,0 +1,119 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from je_editor import language_wrapper
6
+
7
+ from automation_ide.automation_editor_ui.menu.menu_utils import open_web_browser
8
+
9
+ if TYPE_CHECKING:
10
+ from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
11
+ import sys
12
+
13
+ from PySide6.QtGui import QAction
14
+
15
+ from automation_ide.extend.process_executor.web_runner.web_runner_process import call_web_runner_test, \
16
+ call_web_runner_test_with_send, call_web_runner_test_multi_file, call_web_runner_test_multi_file_and_send
17
+
18
+
19
+ def set_web_runner_menu(ui_we_want_to_set: AutomationEditor):
20
+ """
21
+ Build menu include WebRunner feature.
22
+ :param ui_we_want_to_set: main window to add menu.
23
+ :return: None
24
+ """
25
+ ui_we_want_to_set.web_runner_menu = ui_we_want_to_set.automation_menu.addMenu(
26
+ language_wrapper.language_word_dict.get("web_runner_menu_label"))
27
+ ui_we_want_to_set.web_runner_run_menu = ui_we_want_to_set.web_runner_menu.addMenu(
28
+ language_wrapper.language_word_dict.get("web_runner_menu_label"))
29
+ # Run WEBRunner Script
30
+ ui_we_want_to_set.run_web_runner_action = QAction(
31
+ language_wrapper.language_word_dict.get("web_runner_run_script_label"))
32
+ ui_we_want_to_set.run_web_runner_action.triggered.connect(
33
+ lambda: call_web_runner_test(
34
+ ui_we_want_to_set,
35
+ )
36
+ )
37
+ ui_we_want_to_set.web_runner_run_menu.addAction(ui_we_want_to_set.run_web_runner_action)
38
+ # Run WEBRunner Script With Send
39
+ ui_we_want_to_set.run_web_runner_action_with_send = QAction(
40
+ language_wrapper.language_word_dict.get("web_runner_run_script_with_send_label"))
41
+ ui_we_want_to_set.run_web_runner_action_with_send.triggered.connect(
42
+ lambda: call_web_runner_test_with_send(
43
+ ui_we_want_to_set
44
+ )
45
+ )
46
+ ui_we_want_to_set.web_runner_run_menu.addAction(
47
+ ui_we_want_to_set.run_web_runner_action_with_send
48
+ )
49
+ # Run Multi WEBRunner Script
50
+ ui_we_want_to_set.run_multi_web_runner_action = QAction(
51
+ language_wrapper.language_word_dict.get("web_runner_run_multi_script_label"))
52
+ ui_we_want_to_set.run_multi_web_runner_action.triggered.connect(
53
+ lambda: call_web_runner_test_multi_file(
54
+ ui_we_want_to_set,
55
+ )
56
+ )
57
+ ui_we_want_to_set.web_runner_run_menu.addAction(
58
+ ui_we_want_to_set.run_multi_web_runner_action
59
+ )
60
+ # Run Multi WEBRunner Script With Send
61
+ ui_we_want_to_set.run_multi_web_runner_action_with_send = QAction(
62
+ language_wrapper.language_word_dict.get("web_runner_run_multi_script_with_send_label"))
63
+ ui_we_want_to_set.run_multi_web_runner_action_with_send.triggered.connect(
64
+ lambda: call_web_runner_test_multi_file_and_send(
65
+ ui_we_want_to_set,
66
+ )
67
+ )
68
+ ui_we_want_to_set.web_runner_run_menu.addAction(
69
+ ui_we_want_to_set.run_multi_web_runner_action_with_send
70
+ )
71
+ ui_we_want_to_set.web_runner_help_menu = ui_we_want_to_set.web_runner_menu.addMenu(
72
+ language_wrapper.language_word_dict.get("help_label"))
73
+ # Open Doc
74
+ ui_we_want_to_set.open_web_runner_doc_action = QAction(
75
+ language_wrapper.language_word_dict.get("web_runner_doc_label"))
76
+ ui_we_want_to_set.open_web_runner_doc_action.triggered.connect(
77
+ lambda: open_web_browser(
78
+ ui_we_want_to_set,
79
+ "https://webrunner.readthedocs.io/en/latest/",
80
+ language_wrapper.language_word_dict.get("web_runner_doc_tab_label")
81
+ )
82
+ )
83
+ ui_we_want_to_set.web_runner_help_menu.addAction(
84
+ ui_we_want_to_set.open_web_runner_doc_action
85
+ )
86
+ # Open Github
87
+ ui_we_want_to_set.open_web_runner_github_action = QAction(
88
+ language_wrapper.language_word_dict.get("web_runner_github_label"))
89
+ ui_we_want_to_set.open_web_runner_github_action.triggered.connect(
90
+ lambda: open_web_browser(
91
+ ui_we_want_to_set,
92
+ "https://github.com/Intergration-Automation-Testing/WebRunner",
93
+ language_wrapper.language_word_dict.get("web_runner_github_tab_label")
94
+ )
95
+ )
96
+ ui_we_want_to_set.web_runner_help_menu.addAction(
97
+ ui_we_want_to_set.open_web_runner_github_action
98
+ )
99
+ ui_we_want_to_set.web_runner_project_menu = ui_we_want_to_set.web_runner_menu.addMenu(
100
+ language_wrapper.language_word_dict.get("project_label"))
101
+ # Create Project
102
+ ui_we_want_to_set.create_web_runner_project_action = QAction(
103
+ language_wrapper.language_word_dict.get("web_runner_create_project_label"))
104
+ ui_we_want_to_set.create_web_runner_project_action.triggered.connect(
105
+ create_project
106
+ )
107
+ ui_we_want_to_set.web_runner_project_menu.addAction(
108
+ ui_we_want_to_set.create_web_runner_project_action
109
+ )
110
+
111
+
112
+ def create_project() -> None:
113
+ try:
114
+ import je_web_runner
115
+ package = je_web_runner
116
+ if package is not None:
117
+ package.create_project_dir()
118
+ except ImportError as error:
119
+ print(repr(error), file=sys.stderr)
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from automation_ide.automation_editor_ui.menu.tools.tools_menu import build_tools_menu, extend_dock_menu
6
+
7
+ if TYPE_CHECKING:
8
+ from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
9
+
10
+ from automation_ide.automation_editor_ui.menu.automation_menu.api_testka_menu.build_api_testka_menu import \
11
+ set_apitestka_menu
12
+ from automation_ide.automation_editor_ui.menu.automation_menu.auto_control_menu.build_autocontrol_menu import \
13
+ set_autocontrol_menu
14
+ from automation_ide.automation_editor_ui.menu.automation_menu.automation_file_menu.build_automation_file_menu import \
15
+ set_automation_file_menu
16
+ from automation_ide.automation_editor_ui.menu.automation_menu.load_density_menu.build_load_density_menu import \
17
+ set_load_density_menu
18
+ from automation_ide.automation_editor_ui.menu.automation_menu.mail_thunder_menu.build_mail_thunder_menu import \
19
+ set_mail_thunder_menu
20
+ from automation_ide.automation_editor_ui.menu.automation_menu.web_runner_menu.build_webrunner_menu import \
21
+ set_web_runner_menu
22
+ from automation_ide.automation_editor_ui.menu.install_menu.automation_menu.build_automation_install_menu import \
23
+ build_automation_install_menu
24
+ from automation_ide.automation_editor_ui.menu.install_menu.tools_menu.build_tool_install_menu import \
25
+ build_tool_install_menu
26
+ from automation_ide.automation_editor_ui.menu.automation_menu.test_pioneer_menu.build_test_pioneer_menu import \
27
+ set_test_pioneer_menu
28
+
29
+ from je_editor import language_wrapper
30
+
31
+
32
+ def add_menu_to_menubar(ui_we_want_to_set: AutomationEditor):
33
+ ui_we_want_to_set.automation_menu = ui_we_want_to_set.menu.addMenu(
34
+ language_wrapper.language_word_dict.get("automation_menu_label"))
35
+ ui_we_want_to_set.install_menu = ui_we_want_to_set.menu.addMenu(
36
+ language_wrapper.language_word_dict.get("install_menu_label"))
37
+ set_apitestka_menu(ui_we_want_to_set)
38
+ set_autocontrol_menu(ui_we_want_to_set)
39
+ set_automation_file_menu(ui_we_want_to_set)
40
+ set_load_density_menu(ui_we_want_to_set)
41
+ set_mail_thunder_menu(ui_we_want_to_set)
42
+ set_web_runner_menu(ui_we_want_to_set)
43
+ set_test_pioneer_menu(ui_we_want_to_set)
44
+ build_automation_install_menu(ui_we_want_to_set)
45
+ build_tool_install_menu(ui_we_want_to_set)
46
+ build_tools_menu(ui_we_want_to_set)
47
+ extend_dock_menu(ui_we_want_to_set)
@@ -0,0 +1,82 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from PySide6.QtGui import QAction
6
+ from je_editor import language_wrapper
7
+
8
+ from automation_ide.automation_editor_ui.menu.install_menu.install_utils import install_package
9
+
10
+ if TYPE_CHECKING:
11
+ from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
12
+
13
+
14
+ def build_automation_install_menu(ui_we_want_to_set: AutomationEditor):
15
+ ui_we_want_to_set.install_automation_menu = ui_we_want_to_set.install_menu.addMenu(
16
+ language_wrapper.language_word_dict.get("automation_menu_label"))
17
+ # Try to install AutoControl
18
+ ui_we_want_to_set.install_autocontrol_action = QAction(
19
+ language_wrapper.language_word_dict.get("install_menu_autocontrol"))
20
+ ui_we_want_to_set.install_autocontrol_action.triggered.connect(
21
+ lambda: install_autocontrol(ui_we_want_to_set)
22
+ )
23
+ ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_autocontrol_action)
24
+ # Try to install APITestka
25
+ ui_we_want_to_set.install_api_testka = QAction(
26
+ language_wrapper.language_word_dict.get("install_menu_apitestka"))
27
+ ui_we_want_to_set.install_api_testka.triggered.connect(
28
+ lambda: install_api_testka(ui_we_want_to_set)
29
+ )
30
+ ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_api_testka)
31
+ # Try to install LoadDensity
32
+ ui_we_want_to_set.install_load_density_action = QAction(
33
+ language_wrapper.language_word_dict.get("install_menu_loaddensity"))
34
+ ui_we_want_to_set.install_load_density_action.triggered.connect(
35
+ lambda: install_load_density(ui_we_want_to_set)
36
+ )
37
+ ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_load_density_action)
38
+ # Try to install WebRunner
39
+ ui_we_want_to_set.install_web_runner_action = QAction(
40
+ language_wrapper.language_word_dict.get("install_menu_webrunner"))
41
+ ui_we_want_to_set.install_web_runner_action.triggered.connect(
42
+ lambda: install_web_runner(ui_we_want_to_set)
43
+ )
44
+ ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_web_runner_action)
45
+ # Try to install Automation File
46
+ ui_we_want_to_set.install_automation_file_action = QAction(
47
+ language_wrapper.language_word_dict.get("install_menu_automation_file"))
48
+ ui_we_want_to_set.install_automation_file_action.triggered.connect(
49
+ lambda: install_automation_file(ui_we_want_to_set)
50
+ )
51
+ ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_automation_file_action)
52
+ # Try to install MailThunder
53
+ ui_we_want_to_set.install_mail_thunder_action = QAction(
54
+ language_wrapper.language_word_dict.get("install_menu_mail_thunder"))
55
+ ui_we_want_to_set.install_mail_thunder_action.triggered.connect(
56
+ lambda: install_mail_thunder_file(ui_we_want_to_set)
57
+ )
58
+ ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_mail_thunder_action)
59
+
60
+
61
+ def install_autocontrol(ui_we_want_to_set: AutomationEditor) -> None:
62
+ install_package("je_auto_control", ui_we_want_to_set)
63
+
64
+
65
+ def install_api_testka(ui_we_want_to_set: AutomationEditor) -> None:
66
+ install_package("je_api_testka", ui_we_want_to_set)
67
+
68
+
69
+ def install_load_density(ui_we_want_to_set: AutomationEditor) -> None:
70
+ install_package("je_load_density", ui_we_want_to_set)
71
+
72
+
73
+ def install_web_runner(ui_we_want_to_set: AutomationEditor) -> None:
74
+ install_package("je_web_runner", ui_we_want_to_set)
75
+
76
+
77
+ def install_automation_file(ui_we_want_to_set: AutomationEditor) -> None:
78
+ install_package("automation_file", ui_we_want_to_set)
79
+
80
+
81
+ def install_mail_thunder_file(ui_we_want_to_set: AutomationEditor) -> None:
82
+ install_package("je_mail_thunder", ui_we_want_to_set)