Skip to content

Commit 4b5d2e0

Browse files
authored
Merge pull request #79 from Integration-Automation/dev
Dev
2 parents f5a4fb0 + c965b5d commit 4b5d2e0

File tree

62 files changed

+4536
-1602
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+4536
-1602
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<a href="https://pypi.org/project/je-web-runner/"><img src="https://img.shields.io/pypi/v/je_web_runner" alt="PyPI Version"></a>
99
<a href="https://pypi.org/project/je-web-runner/"><img src="https://img.shields.io/pypi/pyversions/je_web_runner" alt="Python Version"></a>
1010
<a href="https://github.com/Intergration-Automation-Testing/WebRunner/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Intergration-Automation-Testing/WebRunner" alt="License"></a>
11-
<a href="https://webrunner.readthedocs.io/en/latest/"><img src="https://img.shields.io/badge/docs-readthedocs-blue" alt="Documentation"></a>
11+
<a href="https://webrunner.readthedocs.io/en/latest/"><img src="https://readthedocs.org/projects/webrunner/badge/?version=latest" alt="Documentation Status"></a>
1212
</p>
1313

1414
<p align="center">
@@ -701,4 +701,3 @@ WebRunner uses a rotating file handler for logging.
701701

702702
This project is licensed under the [MIT License](LICENSE).
703703

704-
Copyright (c) 2021~2023 JE-Chen

docs/source/API/api_index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ WebRunner API Documentation
1212
utils/generate_report.rst
1313
utils/json.rst
1414
utils/package_manager.rst
15+
utils/project.rst
1516
utils/socket_server.rst
1617
utils/test_object.rst
17-
utils/test_reocrd.rst
18+
utils/test_record.rst
1819
utils/xml.rst
19-
utils/scheduler.rst
2020
wrapper/element.rst
2121
wrapper/manager.rst
2222
wrapper/utils.rst

docs/source/API/utils/assert.rst

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,92 @@
11
Assert API
2-
----
2+
==========
3+
4+
``je_web_runner.utils.assert_value.result_check``
5+
6+
Functions for validating WebDriver and WebElement properties.
7+
Raises ``WebRunnerAssertException`` on validation failure.
38

49
.. code-block:: python
510
611
def _make_webdriver_check_dict(webdriver_to_check: WebDriver) -> dict:
712
"""
8-
use to check webdriver current info
9-
:param webdriver_to_check: what webdriver we want to check
10-
:return: webdriver detail dict
13+
Build a dictionary of the WebDriver's current state for validation.
14+
15+
:param webdriver_to_check: WebDriver instance to inspect
16+
:return: dict of WebDriver properties (name, title, current_url, etc.)
1117
"""
1218
1319
.. code-block:: python
1420
1521
def _make_web_element_check_dict(web_element_to_check: WebElement) -> dict:
1622
"""
17-
use to check web element current info
18-
:param web_element_to_check: what web element we want to check
19-
:return: web element detail dict
23+
Build a dictionary of the WebElement's current state for validation.
24+
25+
:param web_element_to_check: WebElement instance to inspect
26+
:return: dict of WebElement properties (tag_name, text, enabled, displayed, etc.)
2027
"""
2128
2229
.. code-block:: python
2330
24-
def check_value(element_name: str, element_value: typing.Any, result_check_dict: dict) -> None:
31+
def check_value(element_name: str, element_value: Any, result_check_dict: dict) -> None:
2532
"""
26-
use to check state
27-
:param element_name: the name of element we want to check
28-
:param element_value: what value element should be
29-
:param result_check_dict: the dict include data name and value to check check_dict is valid or not
30-
:return: None
33+
Check a single value against a result dictionary.
34+
35+
:param element_name: key to look up in result_check_dict
36+
:param element_value: expected value
37+
:param result_check_dict: dictionary of actual values
38+
:raises WebRunnerAssertException: if values don't match
3139
"""
3240
3341
.. code-block:: python
3442
3543
def check_values(check_dict: dict, result_check_dict: dict) -> None:
3644
"""
37-
:param check_dict: dict include data name and value to check
38-
:param result_check_dict: the dict include data name and value to check check_dict is valid or not
39-
:return: None
45+
Check multiple key-value pairs against a result dictionary.
46+
47+
:param check_dict: dict of {name: expected_value} pairs
48+
:param result_check_dict: dictionary of actual values
49+
:raises WebRunnerAssertException: if any value doesn't match
4050
"""
4151
4252
.. code-block:: python
4353
44-
def check_webdriver_value(element_name: str, element_value: typing.Any, webdriver_to_check: WebDriver) -> None:
54+
def check_webdriver_value(element_name: str, element_value: Any, webdriver_to_check: WebDriver) -> None:
4555
"""
46-
:param element_name: the name of element we want to check
47-
:param element_value: what value element should be
48-
:param webdriver_to_check: the dict include data name and value to check result_dict is valid or not
49-
:return: None
56+
Check a single WebDriver property against an expected value.
57+
58+
:param element_name: property name (e.g., "name", "title")
59+
:param element_value: expected value
60+
:param webdriver_to_check: WebDriver instance to validate
5061
"""
5162
5263
.. code-block:: python
5364
5465
def check_webdriver_details(webdriver_to_check: WebDriver, result_check_dict: dict) -> None:
5566
"""
56-
:param webdriver_to_check: what webdriver we want to check
57-
:param result_check_dict: the dict include data name and value to check result_dict is valid or not
58-
:return: None
67+
Validate multiple WebDriver properties.
68+
69+
:param webdriver_to_check: WebDriver instance to validate
70+
:param result_check_dict: dict of {property: expected_value}
5971
"""
6072
6173
.. code-block:: python
6274
63-
def check_web_element_value(element_name: str, element_value: typing.Any, web_element_to_check: WebElement) -> None:
75+
def check_web_element_value(element_name: str, element_value: Any, web_element_to_check: WebElement) -> None:
6476
"""
65-
:param element_name: the name of element we want to check
66-
:param element_value: what value element should be
67-
:param web_element_to_check: the dict include data name and value to check result_dict is valid or not
68-
:return: None
77+
Check a single WebElement property against an expected value.
78+
79+
:param element_name: property name (e.g., "tag_name", "enabled")
80+
:param element_value: expected value
81+
:param web_element_to_check: WebElement instance to validate
6982
"""
7083
7184
.. code-block:: python
7285
7386
def check_web_element_details(web_element_to_check: WebElement, result_check_dict: dict) -> None:
7487
"""
75-
:param web_element_to_check: what web element we want to check
76-
:param result_check_dict: the dict include data name and value to check result_dict is valid or not
77-
:return: None
78-
"""
88+
Validate multiple WebElement properties.
89+
90+
:param web_element_to_check: WebElement instance to validate
91+
:param result_check_dict: dict of {property: expected_value}
92+
"""

docs/source/API/utils/callback.rst

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,44 @@
11
Callback API
2-
----
2+
============
3+
4+
``je_web_runner.utils.callback.callback_function_executor``
5+
6+
Class: CallbackFunctionExecutor
7+
-------------------------------
8+
9+
Executes trigger functions with callback support.
10+
Shares the same ``event_dict`` command mapping as the standard Executor.
11+
12+
.. code-block:: python
13+
14+
class CallbackFunctionExecutor:
15+
16+
event_dict: dict
17+
# Same command mapping as Executor (WR_* commands)
18+
19+
def callback_function(
20+
self,
21+
trigger_function_name: str,
22+
callback_function: Callable,
23+
callback_function_param: Union[dict, list, None] = None,
24+
callback_param_method: str = "kwargs",
25+
**kwargs
26+
):
27+
"""
28+
Execute a trigger function, then execute a callback function.
29+
30+
:param trigger_function_name: function name to trigger (must exist in event_dict)
31+
:param callback_function: callback function to execute after trigger
32+
:param callback_function_param: parameters for callback (dict for kwargs, list for args)
33+
:param callback_param_method: "kwargs" or "args"
34+
:param kwargs: parameters passed to the trigger function
35+
:return: return value of the trigger function
36+
:raises CallbackExecutorException: if trigger function not found or invalid param method
37+
"""
38+
39+
Global Instance
40+
---------------
341

442
.. code-block:: python
543
6-
def callback_function(
7-
self,
8-
trigger_function_name: str,
9-
callback_function: typing.Callable,
10-
callback_function_param: [dict, None] = None,
11-
callback_param_method: str = "kwargs",
12-
**kwargs
13-
):
14-
"""
15-
:param trigger_function_name: what function we want to trigger only accept function in event_dict
16-
:param callback_function: what function we want to callback
17-
:param callback_function_param: callback function's param only accept dict
18-
:param callback_param_method: what type param will use on callback function only accept kwargs and args
19-
:param kwargs: trigger_function's param
20-
:return: trigger_function_name return value
21-
"""
44+
callback_executor = CallbackFunctionExecutor()

0 commit comments

Comments
 (0)