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.
- pybreeze_dev-1.0.5/LICENSE +21 -0
- pybreeze_dev-1.0.5/PKG-INFO +66 -0
- pybreeze_dev-1.0.5/README.md +38 -0
- pybreeze_dev-1.0.5/pybreeze/__init__.py +7 -0
- pybreeze_dev-1.0.5/pybreeze/__main__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/mail_thunder_extend/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/mail_thunder_extend/mail_thunder_setting.py +36 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/api_testka/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/api_testka/api_testka_process.py +66 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/auto_control/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/auto_control/auto_control_process.py +62 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/file_automation/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/file_automation/file_automation_process.py +66 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/load_density/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/load_density/load_density_process.py +66 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/mail_thunder/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/mail_thunder/mail_thunder_process.py +16 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/process_executor_utils.py +72 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/python_task_process_manager.py +177 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/test_pioneer/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/test_pioneer/test_pioneer_process_manager.py +181 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/web_runner/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/extend/process_executor/web_runner/web_runner_process.py +66 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_command_widget.py +246 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_file_viewer_widget.py +501 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_login_widget.py +67 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_main_widget.py +49 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/url/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/connect_gui/url/ai_code_review_gui.py +177 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/editor_main/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/editor_main/main_ui.py +104 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/ai_gui_global_variable.py +40 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/code_review/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/code_review/code_review_thread.py +81 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/code_review/cot_code_review_gui.py +82 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/__init__.py +0 -0
- 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
- 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
- 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
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/global_rule.py +59 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge.py +91 -0
- 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
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/linter.py +17 -0
- 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
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/total_summary.py +66 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/cot_prompt_editor_widget.py +136 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_editor_widget.py +136 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_explainer.py +21 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_review.py +37 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/skills/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_ai_gui/skills/skills_send_gui.py +98 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/extend_english.py +272 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/extend_traditional_chinese.py +272 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/extend_multi_language/update_language_dict.py +8 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/api_testka_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/api_testka_menu/build_api_testka_menu.py +137 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/auto_control_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/auto_control_menu/build_autocontrol_menu.py +169 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/automation_file_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/automation_file_menu/build_automation_file_menu.py +122 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/load_density_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/load_density_menu/build_load_density_menu.py +137 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/mail_thunder_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/mail_thunder_menu/build_mail_thunder_menu.py +88 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/test_pioneer_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/test_pioneer_menu/build_test_pioneer_menu.py +62 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/web_runner_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/automation_menu/web_runner_menu/build_webrunner_menu.py +119 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/build_menubar.py +47 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/automation_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/automation_menu/build_automation_install_menu.py +82 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/install_utils.py +21 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/tools_menu/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/install_menu/tools_menu/build_tool_install_menu.py +29 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/menu_utils.py +16 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/tools/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/menu/tools/tools_menu.py +162 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/show_code_window/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/show_code_window/code_window.py +21 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/syntax/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/syntax/syntax_extend.py +40 -0
- pybreeze_dev-1.0.5/pybreeze/pybreeze_ui/syntax/syntax_keyword.py +163 -0
- pybreeze_dev-1.0.5/pybreeze/utils/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/utils/exception/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/utils/exception/exception_tags.py +37 -0
- pybreeze_dev-1.0.5/pybreeze/utils/exception/exceptions.py +50 -0
- pybreeze_dev-1.0.5/pybreeze/utils/file_process/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/utils/file_process/get_dir_file_list.py +29 -0
- pybreeze_dev-1.0.5/pybreeze/utils/json_format/__init__.py +1 -0
- pybreeze_dev-1.0.5/pybreeze/utils/json_format/json_process.py +28 -0
- pybreeze_dev-1.0.5/pybreeze/utils/logging/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/utils/logging/logger.py +50 -0
- pybreeze_dev-1.0.5/pybreeze/utils/manager/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/utils/manager/package_manager/__init__.py +0 -0
- pybreeze_dev-1.0.5/pybreeze/utils/manager/package_manager/package_manager_class.py +18 -0
- pybreeze_dev-1.0.5/pybreeze_dev.egg-info/PKG-INFO +66 -0
- pybreeze_dev-1.0.5/pybreeze_dev.egg-info/SOURCES.txt +112 -0
- pybreeze_dev-1.0.5/pybreeze_dev.egg-info/dependency_links.txt +1 -0
- pybreeze_dev-1.0.5/pybreeze_dev.egg-info/requires.txt +10 -0
- pybreeze_dev-1.0.5/pybreeze_dev.egg-info/top_level.txt +1 -0
- pybreeze_dev-1.0.5/pyproject.toml +40 -0
- 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
|
+

|
|
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
|
+

|
|
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
|
|
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)
|
|
File without changes
|
|
File without changes
|
|
@@ -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)
|
|
File without changes
|
|
@@ -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)
|
|
File without changes
|
pybreeze_dev-1.0.5/pybreeze/extend/process_executor/file_automation/file_automation_process.py
ADDED
|
@@ -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)
|
|
File without changes
|
|
@@ -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)
|
|
File without changes
|
|
@@ -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
|
+
)
|