pybreeze-dev 1.0.5__tar.gz

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 (114) hide show
  1. pybreeze_dev-1.0.5/LICENSE +21 -0
  2. pybreeze_dev-1.0.5/PKG-INFO +66 -0
  3. pybreeze_dev-1.0.5/README.md +38 -0
  4. pybreeze_dev-1.0.5/pybreeze/__init__.py +7 -0
  5. pybreeze_dev-1.0.5/pybreeze/__main__.py +0 -0
  6. pybreeze_dev-1.0.5/pybreeze/extend/__init__.py +0 -0
  7. pybreeze_dev-1.0.5/pybreeze/extend/mail_thunder_extend/__init__.py +0 -0
  8. pybreeze_dev-1.0.5/pybreeze/extend/mail_thunder_extend/mail_thunder_setting.py +36 -0
  9. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/__init__.py +0 -0
  10. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/api_testka/__init__.py +0 -0
  11. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/api_testka/api_testka_process.py +66 -0
  12. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/auto_control/__init__.py +0 -0
  13. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/auto_control/auto_control_process.py +62 -0
  14. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/file_automation/__init__.py +0 -0
  15. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/file_automation/file_automation_process.py +66 -0
  16. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/load_density/__init__.py +0 -0
  17. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/load_density/load_density_process.py +66 -0
  18. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/mail_thunder/__init__.py +0 -0
  19. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/mail_thunder/mail_thunder_process.py +16 -0
  20. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/process_executor_utils.py +72 -0
  21. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/python_task_process_manager.py +177 -0
  22. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/test_pioneer/__init__.py +0 -0
  23. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/test_pioneer/test_pioneer_process_manager.py +181 -0
  24. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/web_runner/__init__.py +0 -0
  25. pybreeze_dev-1.0.5/pybreeze/extend/process_executor/web_runner/web_runner_process.py +66 -0
  26. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/__init__.py +0 -0
  27. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/__init__.py +0 -0
  28. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/__init__.py +0 -0
  29. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_command_widget.py +246 -0
  30. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_file_viewer_widget.py +501 -0
  31. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_login_widget.py +67 -0
  32. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_main_widget.py +49 -0
  33. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/url/__init__.py +0 -0
  34. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/url/ai_code_review_gui.py +177 -0
  35. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/editor_main/__init__.py +0 -0
  36. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/editor_main/main_ui.py +104 -0
  37. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/__init__.py +0 -0
  38. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/ai_gui_global_variable.py +40 -0
  39. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/code_review/__init__.py +0 -0
  40. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/code_review/code_review_thread.py +81 -0
  41. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/code_review/cot_code_review_gui.py +82 -0
  42. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/__init__.py +0 -0
  43. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/__init__.py +0 -0
  44. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/code_smell_detector.py +22 -0
  45. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_code_review.py +17 -0
  46. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_summary_prompt.py +17 -0
  47. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/global_rule.py +59 -0
  48. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge.py +91 -0
  49. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge_single_review.py +85 -0
  50. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/linter.py +17 -0
  51. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/step_by_step_analysis.py +35 -0
  52. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/total_summary.py +66 -0
  53. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_prompt_editor_widget.py +136 -0
  54. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_editor_widget.py +136 -0
  55. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/__init__.py +0 -0
  56. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_explainer.py +21 -0
  57. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_review.py +37 -0
  58. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/skills/__init__.py +0 -0
  59. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/skills/skills_send_gui.py +98 -0
  60. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/__init__.py +0 -0
  61. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/extend_english.py +272 -0
  62. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/extend_traditional_chinese.py +272 -0
  63. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/update_language_dict.py +8 -0
  64. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/__init__.py +0 -0
  65. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/__init__.py +0 -0
  66. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/api_testka_menu/__init__.py +0 -0
  67. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/api_testka_menu/build_api_testka_menu.py +137 -0
  68. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/auto_control_menu/__init__.py +0 -0
  69. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/auto_control_menu/build_autocontrol_menu.py +169 -0
  70. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/automation_file_menu/__init__.py +0 -0
  71. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/automation_file_menu/build_automation_file_menu.py +122 -0
  72. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/load_density_menu/__init__.py +0 -0
  73. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/load_density_menu/build_load_density_menu.py +137 -0
  74. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/mail_thunder_menu/__init__.py +0 -0
  75. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/mail_thunder_menu/build_mail_thunder_menu.py +88 -0
  76. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/test_pioneer_menu/__init__.py +0 -0
  77. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/test_pioneer_menu/build_test_pioneer_menu.py +62 -0
  78. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/web_runner_menu/__init__.py +0 -0
  79. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/web_runner_menu/build_webrunner_menu.py +119 -0
  80. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/build_menubar.py +47 -0
  81. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/__init__.py +0 -0
  82. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/automation_menu/__init__.py +0 -0
  83. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/automation_menu/build_automation_install_menu.py +82 -0
  84. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/install_utils.py +21 -0
  85. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/tools_menu/__init__.py +0 -0
  86. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/tools_menu/build_tool_install_menu.py +29 -0
  87. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/menu_utils.py +16 -0
  88. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/tools/__init__.py +0 -0
  89. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/tools/tools_menu.py +162 -0
  90. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/show_code_window/__init__.py +0 -0
  91. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/show_code_window/code_window.py +21 -0
  92. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/syntax/__init__.py +0 -0
  93. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/syntax/syntax_extend.py +40 -0
  94. pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/syntax/syntax_keyword.py +163 -0
  95. pybreeze_dev-1.0.5/pybreeze/utils/__init__.py +0 -0
  96. pybreeze_dev-1.0.5/pybreeze/utils/exception/__init__.py +0 -0
  97. pybreeze_dev-1.0.5/pybreeze/utils/exception/exception_tags.py +37 -0
  98. pybreeze_dev-1.0.5/pybreeze/utils/exception/exceptions.py +50 -0
  99. pybreeze_dev-1.0.5/pybreeze/utils/file_process/__init__.py +0 -0
  100. pybreeze_dev-1.0.5/pybreeze/utils/file_process/get_dir_file_list.py +29 -0
  101. pybreeze_dev-1.0.5/pybreeze/utils/json_format/__init__.py +1 -0
  102. pybreeze_dev-1.0.5/pybreeze/utils/json_format/json_process.py +28 -0
  103. pybreeze_dev-1.0.5/pybreeze/utils/logging/__init__.py +0 -0
  104. pybreeze_dev-1.0.5/pybreeze/utils/logging/logger.py +50 -0
  105. pybreeze_dev-1.0.5/pybreeze/utils/manager/__init__.py +0 -0
  106. pybreeze_dev-1.0.5/pybreeze/utils/manager/package_manager/__init__.py +0 -0
  107. pybreeze_dev-1.0.5/pybreeze/utils/manager/package_manager/package_manager_class.py +18 -0
  108. pybreeze_dev-1.0.5/pybreeze_dev.egg-info/PKG-INFO +66 -0
  109. pybreeze_dev-1.0.5/pybreeze_dev.egg-info/SOURCES.txt +112 -0
  110. pybreeze_dev-1.0.5/pybreeze_dev.egg-info/dependency_links.txt +1 -0
  111. pybreeze_dev-1.0.5/pybreeze_dev.egg-info/requires.txt +10 -0
  112. pybreeze_dev-1.0.5/pybreeze_dev.egg-info/top_level.txt +1 -0
  113. pybreeze_dev-1.0.5/pyproject.toml +40 -0
  114. pybreeze_dev-1.0.5/setup.cfg +4 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 JE-Chen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,66 @@
1
+ Metadata-Version: 2.4
2
+ Name: pybreeze_dev
3
+ Version: 1.0.5
4
+ Summary: AutomationEditor for multi automation
5
+ Author-email: JE-Chen <jechenmailman@gmail.com>
6
+ Project-URL: Homepage, https://github.com/Intergration-Automation-Testing/AutomationEditor
7
+ Project-URL: Code, https://github.com/Intergration-Automation-Testing/AutomationEditor
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Development Status :: 2 - Pre-Alpha
10
+ Classifier: Environment :: Win32 (MS Windows)
11
+ Classifier: Environment :: MacOS X
12
+ Classifier: Environment :: X11 Applications
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.10
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: je_editor_dev
18
+ Requires-Dist: je_auto_control
19
+ Requires-Dist: je_web_runner
20
+ Requires-Dist: je_load_density
21
+ Requires-Dist: je_api_testka
22
+ Requires-Dist: je-mail-thunder
23
+ Requires-Dist: automation-file
24
+ Requires-Dist: PySide6==6.10.2
25
+ Requires-Dist: test_pioneer
26
+ Requires-Dist: paramiko
27
+ Dynamic: license-file
28
+
29
+ # PyBreeze: The Automation-First IDE
30
+
31
+ ![Main GUI](images/main_gui.png)
32
+
33
+ ---
34
+
35
+ ## Core Capabilities: Four-Dimensional Automation
36
+ PyBreeze features built-in modules tailored for every level of modern automation, allowing developers to tackle complex scenarios without leaving the IDE:
37
+
38
+ * **Web Automation**: Deep integration with browser drivers and element locators for rapid web-based interaction simulation and testing.
39
+ * **API Automation**: Built-in request builders and response analyzers supporting RESTful API development with advanced assertion verification.
40
+ * **GUI Automation**: Specialized support for image recognition and coordinate-based positioning for seamless desktop application automation.
41
+ * **Load & Stress Testing**: An integrated performance engine capable of simulating high-concurrency scenarios to monitor system stability under extreme pressure.
42
+
43
+ ---
44
+
45
+ ## IDE Deep Dive: Optimized for Automation Workflows
46
+ PyBreeze is more than just a code editor; it is a command center for your automation lifecycle:
47
+
48
+ * **Intelligent Completion**: Provides deep syntax hinting and code navigation specifically for popular automation libraries (e.g., Selenium, Requests, PyAutoGUI), significantly boosting script authoring speed.
49
+ * **Visual Debugging Suite**: Features breakpoint debugging and real-time variable monitoring, enhanced by "Step-by-Step" execution and "Screenshot Traceback" for faster troubleshooting.
50
+ * **Integrated Asset Manager**: Centralized management for Object Repositories (element locators), test data (CSV/JSON), and environment configurations, enabling clean separation of code and data.
51
+ * **Real-Time Analytics Dashboard**: Synchronous reporting during script execution, visualizing logs, screenshots, and performance curves in an intuitive interface.
52
+
53
+ ---
54
+
55
+ ## Key Highlights
56
+ 1. **Native Python Ecosystem**: Built 100% on Python, allowing developers to seamlessly leverage the vast library of third-party packages.
57
+ 2. **Zero-Config Environment**: Features built-in virtual environment management and automatic driver updates, solving the common frustration of complex environment setups.
58
+ 3. **Automation-First UI**: Unlike generic IDEs, the layout is specifically designed around the "Develop-Execute-Report" cycle.
59
+
60
+ ---
61
+
62
+ ## Target Audience
63
+ * **Python Developers**: Those who want a lightweight, dedicated environment to build Python-based automation scripts without the overhead of heavy, general-purpose IDEs.
64
+ * **SDET (Software Development Engineers in Test)**: Professionals needing to maintain Web, API, and Performance tests simultaneously.
65
+ * **Automation Beginners**: Users looking for a friendly IDE that lowers the barrier to entry for Python automation.
66
+ * **DevOps Teams**: A powerful platform for rapidly building and debugging integration test suites within CI/CD pipelines.
@@ -0,0 +1,38 @@
1
+ # PyBreeze: The Automation-First IDE
2
+
3
+ ![Main GUI](images/main_gui.png)
4
+
5
+ ---
6
+
7
+ ## Core Capabilities: Four-Dimensional Automation
8
+ PyBreeze features built-in modules tailored for every level of modern automation, allowing developers to tackle complex scenarios without leaving the IDE:
9
+
10
+ * **Web Automation**: Deep integration with browser drivers and element locators for rapid web-based interaction simulation and testing.
11
+ * **API Automation**: Built-in request builders and response analyzers supporting RESTful API development with advanced assertion verification.
12
+ * **GUI Automation**: Specialized support for image recognition and coordinate-based positioning for seamless desktop application automation.
13
+ * **Load & Stress Testing**: An integrated performance engine capable of simulating high-concurrency scenarios to monitor system stability under extreme pressure.
14
+
15
+ ---
16
+
17
+ ## IDE Deep Dive: Optimized for Automation Workflows
18
+ PyBreeze is more than just a code editor; it is a command center for your automation lifecycle:
19
+
20
+ * **Intelligent Completion**: Provides deep syntax hinting and code navigation specifically for popular automation libraries (e.g., Selenium, Requests, PyAutoGUI), significantly boosting script authoring speed.
21
+ * **Visual Debugging Suite**: Features breakpoint debugging and real-time variable monitoring, enhanced by "Step-by-Step" execution and "Screenshot Traceback" for faster troubleshooting.
22
+ * **Integrated Asset Manager**: Centralized management for Object Repositories (element locators), test data (CSV/JSON), and environment configurations, enabling clean separation of code and data.
23
+ * **Real-Time Analytics Dashboard**: Synchronous reporting during script execution, visualizing logs, screenshots, and performance curves in an intuitive interface.
24
+
25
+ ---
26
+
27
+ ## Key Highlights
28
+ 1. **Native Python Ecosystem**: Built 100% on Python, allowing developers to seamlessly leverage the vast library of third-party packages.
29
+ 2. **Zero-Config Environment**: Features built-in virtual environment management and automatic driver updates, solving the common frustration of complex environment setups.
30
+ 3. **Automation-First UI**: Unlike generic IDEs, the layout is specifically designed around the "Develop-Execute-Report" cycle.
31
+
32
+ ---
33
+
34
+ ## Target Audience
35
+ * **Python Developers**: Those who want a lightweight, dedicated environment to build Python-based automation scripts without the overhead of heavy, general-purpose IDEs.
36
+ * **SDET (Software Development Engineers in Test)**: Professionals needing to maintain Web, API, and Performance tests simultaneously.
37
+ * **Automation Beginners**: Users looking for a friendly IDE that lowers the barrier to entry for Python automation.
38
+ * **DevOps Teams**: A powerful platform for rapidly building and debugging integration test suites within CI/CD pipelines.
@@ -0,0 +1,7 @@
1
+ from pybreeze.pybreeze_ui.editor_main.main_ui import AutomationEditor
2
+ from pybreeze.pybreeze_ui.editor_main.main_ui import EDITOR_EXTEND_TAB
3
+ from pybreeze.pybreeze_ui.editor_main.main_ui import start_editor
4
+
5
+ __all__ = [
6
+ "start_editor", "AutomationEditor", "EDITOR_EXTEND_TAB"
7
+ ]
File without changes
File without changes
@@ -0,0 +1,36 @@
1
+ import sys
2
+ from email.mime.multipart import MIMEMultipart
3
+
4
+ from pybreeze.utils.exception.exception_tags import send_html_exception_tag
5
+ from pybreeze.utils.exception.exceptions import ITESendHtmlReportException
6
+
7
+
8
+ def send_after_test(html_report_path: str = None) -> None:
9
+ try:
10
+ from je_mail_thunder import SMTPWrapper
11
+ mail_thunder_smtp: SMTPWrapper = SMTPWrapper()
12
+ if html_report_path is None and mail_thunder_smtp.login_state is True:
13
+ user: str = mail_thunder_smtp.user
14
+ with open("default_name.html", "r+") as file:
15
+ html_string: str = file.read()
16
+ message = mail_thunder_smtp.create_message_with_attach(
17
+ html_string,
18
+ {"Subject": "Test Report", "To": user, "From": user},
19
+ "default_name.html", use_html=True)
20
+ mail_thunder_smtp.send_message(message)
21
+ mail_thunder_smtp.quit()
22
+ elif mail_thunder_smtp.login_state is True:
23
+ user: str = mail_thunder_smtp.user
24
+ with open(html_report_path, "r+") as file:
25
+ html_string: str = file.read()
26
+ message: MIMEMultipart = mail_thunder_smtp.create_message_with_attach(
27
+ html_string,
28
+ {"Subject": "Test Report", "To": user, "From": user},
29
+ html_report_path, use_html=True)
30
+ mail_thunder_smtp.send_message(message)
31
+ mail_thunder_smtp.quit()
32
+ else:
33
+ raise ITESendHtmlReportException
34
+ except ITESendHtmlReportException as error:
35
+ print(repr(error), file=sys.stderr)
36
+ print(send_html_exception_tag, file=sys.stderr)
@@ -0,0 +1,66 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Union
4
+
5
+ from pybreeze.extend.process_executor.process_executor_utils import build_process
6
+
7
+ if TYPE_CHECKING:
8
+ from pybreeze.pybreeze_ui.editor_main.main_ui import AutomationEditor
9
+ import sys
10
+
11
+ from pybreeze.utils.file_process.get_dir_file_list import ask_and_get_dir_files_as_list
12
+
13
+
14
+ def call_api_testka(
15
+ main_window: AutomationEditor,
16
+ exec_str: Union[str, None] = None,
17
+ program_buffer: int = 1024000
18
+ ):
19
+ build_process(main_window, "je_api_testka", exec_str, False, program_buffer)
20
+
21
+
22
+ def call_api_testka_with_send(
23
+ main_window: AutomationEditor,
24
+ exec_str: Union[str, None] = None,
25
+ program_buffer: int = 1024000
26
+ ):
27
+ build_process(main_window, "je_api_testka", exec_str, True, program_buffer)
28
+
29
+
30
+ def call_api_testka_multi_file(
31
+ main_window: AutomationEditor,
32
+ program_buffer: int = 1024000
33
+ ):
34
+ try:
35
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
36
+ if need_to_execute_list is not None \
37
+ and isinstance(need_to_execute_list, list) and len(need_to_execute_list) > 0:
38
+ for execute_file in need_to_execute_list:
39
+ with open(execute_file, "r+") as test_script_json:
40
+ call_api_testka(
41
+ main_window,
42
+ test_script_json.read(),
43
+ program_buffer
44
+ )
45
+ except Exception as error:
46
+ print(repr(error), file=sys.stderr)
47
+
48
+
49
+ def call_api_testka_multi_file_and_send(
50
+ main_window: AutomationEditor,
51
+ program_buffer: int = 1024000
52
+ ):
53
+ try:
54
+
55
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
56
+ if need_to_execute_list is not None \
57
+ and isinstance(need_to_execute_list, list) and len(need_to_execute_list) > 0:
58
+ for execute_file in need_to_execute_list:
59
+ with open(execute_file, "r+") as test_script_json:
60
+ call_api_testka_with_send(
61
+ main_window,
62
+ test_script_json.read(),
63
+ program_buffer
64
+ )
65
+ except Exception as error:
66
+ print(repr(error), file=sys.stderr)
@@ -0,0 +1,62 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Union
4
+
5
+ from pybreeze.extend.process_executor.process_executor_utils import build_process
6
+
7
+ if TYPE_CHECKING:
8
+ from pybreeze.pybreeze_ui.editor_main.main_ui import AutomationEditor
9
+ import sys
10
+
11
+ from pybreeze.utils.file_process.get_dir_file_list import ask_and_get_dir_files_as_list
12
+
13
+
14
+ def call_auto_control(
15
+ main_window: AutomationEditor,
16
+ exec_str: Union[str, None] = None,
17
+ program_buffer: int = 1024000
18
+ ):
19
+ build_process(main_window, "je_auto_control", exec_str, False, program_buffer)
20
+
21
+
22
+ def call_auto_control_with_send(
23
+ main_window: AutomationEditor,
24
+ exec_str: Union[str, None] = None,
25
+ program_buffer: int = 1024000
26
+ ):
27
+ build_process(main_window, "je_auto_control", exec_str, True, program_buffer)
28
+
29
+
30
+ def call_auto_control_multi_file(
31
+ main_window: AutomationEditor,
32
+ program_buffer: int = 1024000
33
+ ):
34
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
35
+ if need_to_execute_list is not None \
36
+ and isinstance(need_to_execute_list, list) and len(need_to_execute_list) > 0:
37
+ for execute_file in need_to_execute_list:
38
+ with open(execute_file, "r+") as test_script_json:
39
+ call_auto_control(
40
+ main_window,
41
+ test_script_json.read(),
42
+ program_buffer
43
+ )
44
+
45
+
46
+ def call_auto_control_multi_file_and_send(
47
+ main_window: AutomationEditor,
48
+ program_buffer: int = 1024000
49
+ ):
50
+ try:
51
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
52
+ if need_to_execute_list is not None \
53
+ and isinstance(need_to_execute_list, list) and len(need_to_execute_list) > 0:
54
+ for execute_file in need_to_execute_list:
55
+ with open(execute_file, "r+") as test_script_json:
56
+ call_auto_control_with_send(
57
+ main_window,
58
+ test_script_json.read(),
59
+ program_buffer
60
+ )
61
+ except Exception as error:
62
+ print(repr(error), file=sys.stderr)
@@ -0,0 +1,66 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Union
4
+
5
+ from pybreeze.extend.process_executor.process_executor_utils import build_process
6
+
7
+ if TYPE_CHECKING:
8
+ from pybreeze.pybreeze_ui.editor_main.main_ui import AutomationEditor
9
+ import sys
10
+
11
+ from pybreeze.utils.file_process.get_dir_file_list import ask_and_get_dir_files_as_list
12
+
13
+
14
+ def call_file_automation_test(
15
+ main_window: AutomationEditor,
16
+ exec_str: Union[str, None] = None,
17
+ program_buffer: int = 1024000
18
+ ):
19
+ build_process(main_window, "automation_file", exec_str, False, program_buffer)
20
+
21
+
22
+ def call_file_automation_test_with_send(
23
+ main_window: AutomationEditor,
24
+ exec_str: Union[str, None] = None,
25
+ program_buffer: int = 1024000
26
+ ):
27
+ build_process(main_window, "automation_file", exec_str, True, program_buffer)
28
+
29
+
30
+ def call_file_automation_test_multi_file(
31
+ main_window: AutomationEditor,
32
+ program_buffer: int = 1024000
33
+ ):
34
+ try:
35
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
36
+ if need_to_execute_list is not None \
37
+ and isinstance(need_to_execute_list, list) and len(need_to_execute_list) > 0:
38
+ for execute_file in need_to_execute_list:
39
+ with open(execute_file, "r+") as test_script_json:
40
+ call_file_automation_test(
41
+ main_window,
42
+ test_script_json.read(),
43
+ program_buffer
44
+ )
45
+ except Exception as error:
46
+ print(repr(error), file=sys.stderr)
47
+
48
+
49
+ def call_file_automation_test_multi_file_and_send(
50
+ main_window: AutomationEditor,
51
+ program_buffer: int = 1024000
52
+ ):
53
+ try:
54
+
55
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
56
+ if need_to_execute_list is not None \
57
+ and isinstance(need_to_execute_list, list) and len(need_to_execute_list) > 0:
58
+ for execute_file in need_to_execute_list:
59
+ with open(execute_file, "r+") as test_script_json:
60
+ call_file_automation_test_with_send(
61
+ main_window,
62
+ test_script_json.read(),
63
+ program_buffer
64
+ )
65
+ except Exception as error:
66
+ print(repr(error), file=sys.stderr)
@@ -0,0 +1,66 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Union
4
+
5
+ from pybreeze.extend.process_executor.process_executor_utils import build_process
6
+
7
+ if TYPE_CHECKING:
8
+ from pybreeze.pybreeze_ui.editor_main.main_ui import AutomationEditor
9
+ import sys
10
+
11
+ from pybreeze.utils.file_process.get_dir_file_list import ask_and_get_dir_files_as_list
12
+
13
+
14
+ def call_load_density(
15
+ main_window: AutomationEditor,
16
+ exec_str: Union[str, None] = None,
17
+ program_buffer: int = 1024000
18
+ ):
19
+ build_process(main_window, "je_load_density", exec_str, False, program_buffer)
20
+
21
+
22
+ def call_load_density_with_send(
23
+ main_window: AutomationEditor,
24
+ exec_str: Union[str, None] = None,
25
+ program_buffer: int = 1024000
26
+ ):
27
+ build_process(main_window, "je_load_density", exec_str, True, program_buffer)
28
+
29
+
30
+ def call_load_density_multi_file(
31
+ main_window: AutomationEditor,
32
+ program_buffer: int = 1024000
33
+ ):
34
+ try:
35
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
36
+ if need_to_execute_list is not None and isinstance(need_to_execute_list, list) and len(
37
+ need_to_execute_list) > 0:
38
+ for execute_file in need_to_execute_list:
39
+ with open(execute_file, "r+") as test_script_json:
40
+ call_load_density(
41
+ main_window,
42
+ test_script_json.read(),
43
+ program_buffer
44
+ )
45
+ except Exception as error:
46
+ print(repr(error), file=sys.stderr)
47
+
48
+
49
+ def call_load_density_multi_file_and_send(
50
+ main_window: AutomationEditor,
51
+ program_buffer: int = 1024000
52
+ ):
53
+ try:
54
+
55
+ need_to_execute_list: list = ask_and_get_dir_files_as_list(main_window)
56
+ if need_to_execute_list is not None and isinstance(need_to_execute_list, list) and len(
57
+ need_to_execute_list) > 0:
58
+ for execute_file in need_to_execute_list:
59
+ with open(execute_file, "r+") as test_script_json:
60
+ call_load_density_with_send(
61
+ main_window,
62
+ test_script_json.read(),
63
+ program_buffer
64
+ )
65
+ except Exception as error:
66
+ print(repr(error), file=sys.stderr)
@@ -0,0 +1,16 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Union
4
+
5
+ from pybreeze.extend.process_executor.process_executor_utils import build_process
6
+
7
+ if TYPE_CHECKING:
8
+ from pybreeze.pybreeze_ui.editor_main.main_ui import AutomationEditor
9
+
10
+
11
+ def call_mail_thunder(
12
+ main_window: AutomationEditor,
13
+ exec_str: Union[str, None] = None,
14
+ program_buffer: int = 1024000
15
+ ):
16
+ build_process(main_window, "je_mail_thunder", exec_str, False, program_buffer)
@@ -0,0 +1,72 @@
1
+ from __future__ import annotations
2
+
3
+ import json
4
+ import sys
5
+ from typing import TYPE_CHECKING, Union
6
+
7
+ from je_editor import EditorWidget
8
+
9
+ from pybreeze.pybreeze_ui.show_code_window.code_window import CodeWindow
10
+ from pybreeze.extend.mail_thunder_extend.mail_thunder_setting import send_after_test
11
+ from pybreeze.extend.process_executor.python_task_process_manager import TaskProcessManager
12
+ from pybreeze.utils.exception.exception_tags import wrong_test_data_format_exception_tag
13
+ from pybreeze.utils.exception.exceptions import ITETestExecutorException
14
+
15
+ if TYPE_CHECKING:
16
+ from pybreeze.pybreeze_ui.editor_main.main_ui import AutomationEditor
17
+
18
+
19
+ def build_process(
20
+ main_window: AutomationEditor,
21
+ package: str,
22
+ exec_str: Union[str, None] = None,
23
+ send_mail: bool = False,
24
+ program_buffer: int = 1024000,
25
+ ):
26
+ try:
27
+ widget = main_window.tab_widget.currentWidget()
28
+ if isinstance(widget, EditorWidget) and exec_str is None:
29
+ test_format_code = widget.code_edit.toPlainText()
30
+ else:
31
+ test_format_code = exec_str
32
+ start_process(main_window, package, test_format_code, send_mail, program_buffer)
33
+ except json.decoder.JSONDecodeError as error:
34
+ print(
35
+ repr(error) +
36
+ "\n"
37
+ + wrong_test_data_format_exception_tag,
38
+ file=sys.stderr
39
+ )
40
+ except ITETestExecutorException as error:
41
+ print(repr(error), file=sys.stderr)
42
+
43
+
44
+ def start_process(
45
+ main_window: AutomationEditor,
46
+ package: str,
47
+ test_format_code: str,
48
+ send_mail: bool = False,
49
+ program_buffer: int = 1024000
50
+ ):
51
+ # Code window init
52
+ code_window = CodeWindow()
53
+ main_window.current_run_code_window.append(code_window)
54
+ main_window.clear_code_result()
55
+ # Process init
56
+ if send_mail:
57
+ process = TaskProcessManager(
58
+ main_window=code_window,
59
+ program_buffer_size=program_buffer,
60
+ program_encoding=main_window.encoding
61
+ )
62
+ else:
63
+ process = TaskProcessManager(
64
+ code_window,
65
+ task_done_trigger_function=send_after_test,
66
+ program_buffer_size=program_buffer,
67
+ program_encoding=main_window.encoding
68
+ )
69
+ process.start_test_process(
70
+ package,
71
+ exec_str=test_format_code,
72
+ )