toolium 3.6.0.dev3__tar.gz → 3.8.0__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.
- {toolium-3.6.0.dev3 → toolium-3.8.0}/CHANGELOG.rst +24 -1
- {toolium-3.6.0.dev3/toolium.egg-info → toolium-3.8.0}/PKG-INFO +56 -33
- {toolium-3.6.0.dev3 → toolium-3.8.0}/README.rst +24 -12
- toolium-3.8.0/VERSION +1 -0
- toolium-3.8.0/pyproject.toml +152 -0
- toolium-3.8.0/requirements_ai.txt +5 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/requirements_dev.txt +2 -5
- toolium-3.8.0/requirements_playwright.txt +1 -0
- toolium-3.8.0/setup.py +27 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/behave/env_utils.py +32 -32
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/behave/environment.py +57 -24
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_driver.py +55 -44
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_driver_playwright.py +25 -26
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_files.py +1 -2
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_parser.py +35 -20
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/driver_wrapper.py +69 -41
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/driver_wrappers_pool.py +57 -33
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/jira.py +22 -12
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/__init__.py +31 -5
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/button_page_element.py +1 -1
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/checkbox_page_element.py +1 -2
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/group_page_element.py +16 -5
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/input_radio_page_element.py +1 -2
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/input_text_page_element.py +9 -7
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/link_page_element.py +1 -2
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/page_element.py +37 -19
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/page_elements.py +16 -6
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/__init__.py +1 -2
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/button_page_element.py +0 -1
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/input_text_page_element.py +3 -4
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/page_element.py +2 -3
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/text_page_element.py +0 -1
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/select_page_element.py +0 -1
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/text_page_element.py +0 -1
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/common_object.py +20 -15
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/mobile_page_object.py +2 -3
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/page_object.py +5 -4
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pytest_fixtures.py +19 -12
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/selenoid.py +30 -25
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/test_cases.py +44 -18
- toolium-3.8.0/toolium/utils/ai_utils/accuracy.py +307 -0
- toolium-3.8.0/toolium/utils/ai_utils/ai_agent.py +128 -0
- toolium-3.8.0/toolium/utils/ai_utils/evaluate_answer.py +244 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/openai.py +24 -14
- toolium-3.8.0/toolium/utils/ai_utils/prompt_injection.py +68 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/spacy.py +6 -8
- toolium-3.8.0/toolium/utils/ai_utils/text_analysis.py +116 -0
- toolium-3.8.0/toolium/utils/ai_utils/text_readability.py +102 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/text_similarity.py +42 -34
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/data_generator.py +7 -7
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/dataset.py +125 -106
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/download_files.py +42 -28
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/driver_utils.py +60 -48
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/driver_wait_utils.py +16 -9
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/path_utils.py +0 -1
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/poeditor.py +54 -51
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/visual_test.py +69 -42
- {toolium-3.6.0.dev3 → toolium-3.8.0/toolium.egg-info}/PKG-INFO +56 -33
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium.egg-info/SOURCES.txt +7 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium.egg-info/requires.txt +15 -2
- toolium-3.6.0.dev3/VERSION +0 -1
- toolium-3.6.0.dev3/setup.py +0 -110
- toolium-3.6.0.dev3/toolium/utils/ai_utils/accuracy.py +0 -186
- toolium-3.6.0.dev3/toolium/utils/ai_utils/prompt_injection.py +0 -67
- {toolium-3.6.0.dev3 → toolium-3.8.0}/LICENSE +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/MANIFEST.in +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/requirements.txt +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/setup.cfg +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/__init__.py +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/behave/__init__.py +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/__init__.py +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/resources/VisualTests.css +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/resources/VisualTests.js +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/resources/VisualTestsTemplate.html +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/__init__.py +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/__init__.py +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium.egg-info/dependency_links.txt +0 -0
- {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium.egg-info/top_level.txt +0 -0
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
Toolium Changelog
|
|
2
2
|
=================
|
|
3
3
|
|
|
4
|
+
v3.8.0
|
|
5
|
+
------
|
|
6
|
+
|
|
7
|
+
*Release date: 2026-03-13*
|
|
8
|
+
|
|
9
|
+
- Add pyproject.toml file for packaging and publishing Toolium
|
|
10
|
+
- Configure ruff for linting and formatting files, replacing flake8 and black
|
|
11
|
+
- Add text analysis tool to get an overall match of a text against a list of expected characteristics
|
|
12
|
+
using AI libraries that come with the `ai` extra dependency
|
|
13
|
+
- Add langgraph methods to create a ReAct AI agent to test the behavior of other AI agents or LLMs
|
|
14
|
+
- Add llm-as-a-judge methods to use an LLM to evaluate the answer of another LLM and give a similarity score based
|
|
15
|
+
on the user's question and a reference answer
|
|
16
|
+
|
|
17
|
+
v3.7.0
|
|
18
|
+
------
|
|
19
|
+
|
|
20
|
+
*Release date: 2025-12-02*
|
|
21
|
+
|
|
22
|
+
- Fix accuracy tag to exclude skipped executions from total executions count
|
|
23
|
+
- Add `after_accuracy_scenario` hook to allow custom behavior after accuracy scenario execution
|
|
24
|
+
- Add csv report for accuracy scenario results
|
|
25
|
+
- Add text readability assessment function based on the AI libraries that come with the `ai` extra dependency
|
|
26
|
+
|
|
4
27
|
v3.6.0
|
|
5
28
|
------
|
|
6
29
|
|
|
7
|
-
*Release date:
|
|
30
|
+
*Release date: 2025-11-20*
|
|
8
31
|
|
|
9
32
|
- Remove Python 3.9 support (Python 3.9 reached the end of its life on October 31st, 2025)
|
|
10
33
|
- Remove xcuitest deprecated `get_window_size` method and replaced it with `get_window_rect` in all mobile actions
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: toolium
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.8.0
|
|
4
4
|
Summary: Wrapper tool of Selenium and Appium libraries to test web and mobile applications in a single project
|
|
5
|
-
|
|
6
|
-
Author: Rubén González Alonso, Telefónica I+D
|
|
7
|
-
Author-email: ruben.gonzalezalonso@telefonica.com
|
|
5
|
+
Author-email: Rubén González Alonso <ruben.gonzalezalonso@telefonica.com>
|
|
8
6
|
License: Apache 2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/telefonica/toolium
|
|
8
|
+
Project-URL: Repository, https://github.com/telefonica/toolium
|
|
9
|
+
Project-URL: Documentation, http://toolium.readthedocs.org/en/latest
|
|
10
|
+
Project-URL: Changelog, http://toolium.readthedocs.org/en/latest/changelog.html
|
|
11
|
+
Project-URL: Bug Tracker, https://github.com/telefonica/toolium/issues
|
|
9
12
|
Keywords: selenium,appium,webdriver,web_automation,mobile_automation,page_object,visual_testing,ai,bdd,behave,pytest
|
|
10
13
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
14
|
Classifier: Intended Audience :: Developers
|
|
@@ -17,9 +20,14 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
24
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
25
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
22
26
|
Classifier: Topic :: Software Development :: Testing
|
|
27
|
+
Classifier: Topic :: Software Development :: Testing :: Acceptance
|
|
28
|
+
Classifier: Topic :: Software Development :: Testing :: BDD
|
|
29
|
+
Classifier: Topic :: Text Processing :: Linguistic
|
|
30
|
+
Requires-Python: >=3.10
|
|
23
31
|
Description-Content-Type: text/x-rst
|
|
24
32
|
License-File: LICENSE
|
|
25
33
|
Requires-Dist: requests~=2.27
|
|
@@ -33,22 +41,25 @@ Requires-Dist: phonenumbers<10.0,>=8.13
|
|
|
33
41
|
Provides-Extra: playwright
|
|
34
42
|
Requires-Dist: playwright~=1.43; extra == "playwright"
|
|
35
43
|
Provides-Extra: ai
|
|
44
|
+
Requires-Dist: langchain-openai~=1.1; extra == "ai"
|
|
45
|
+
Requires-Dist: langgraph~=1.0; extra == "ai"
|
|
36
46
|
Requires-Dist: spacy~=3.8.7; extra == "ai"
|
|
37
47
|
Requires-Dist: sentence-transformers~=5.1; extra == "ai"
|
|
38
|
-
Requires-Dist: transformers==4.56.2; python_version < "3.10" and extra == "ai"
|
|
39
48
|
Requires-Dist: openai~=1.108; extra == "ai"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: pytest~=9.0; extra == "dev"
|
|
51
|
+
Requires-Dist: coverage~=7.11; extra == "dev"
|
|
52
|
+
Requires-Dist: coveralls~=4.0; extra == "dev"
|
|
53
|
+
Requires-Dist: mock~=5.0; extra == "dev"
|
|
54
|
+
Requires-Dist: requests-mock~=1.10; extra == "dev"
|
|
55
|
+
Requires-Dist: Pygments~=2.14; extra == "dev"
|
|
56
|
+
Requires-Dist: build~=1.3; extra == "dev"
|
|
57
|
+
Requires-Dist: wheel>=0.46.2,~=0.46; extra == "dev"
|
|
58
|
+
Requires-Dist: twine~=6.2; extra == "dev"
|
|
59
|
+
Requires-Dist: behave~=1.3; extra == "dev"
|
|
60
|
+
Requires-Dist: importlib_metadata~=8.7; extra == "dev"
|
|
61
|
+
Requires-Dist: ruff~=0.15; extra == "dev"
|
|
48
62
|
Dynamic: license-file
|
|
49
|
-
Dynamic: provides-extra
|
|
50
|
-
Dynamic: requires-dist
|
|
51
|
-
Dynamic: summary
|
|
52
63
|
|
|
53
64
|
Toolium
|
|
54
65
|
=======
|
|
@@ -72,7 +83,7 @@ Getting Started
|
|
|
72
83
|
---------------
|
|
73
84
|
|
|
74
85
|
Run ``pip install toolium`` to install the latest version from `PyPi <https://pypi.org/project/toolium>`_. It's
|
|
75
|
-
highly
|
|
86
|
+
highly recommended to use a virtualenv.
|
|
76
87
|
|
|
77
88
|
The main dependencies are:
|
|
78
89
|
|
|
@@ -85,11 +96,11 @@ The main dependencies are:
|
|
|
85
96
|
- `requests <http://docs.python-requests.org>`_: to test APIs
|
|
86
97
|
|
|
87
98
|
You might need to adjust the Selenium and Appium-Python-Client versions in your project.
|
|
88
|
-
In that case follow the `compatibility matrix <https://github.com/appium/python-client?tab=readme-ov-file#compatibility-matrix>`_
|
|
99
|
+
In that case, follow the `compatibility matrix <https://github.com/appium/python-client?tab=readme-ov-file#compatibility-matrix>`_
|
|
89
100
|
|
|
90
101
|
**Using toolium-template**
|
|
91
102
|
|
|
92
|
-
The easiest way
|
|
103
|
+
The easiest way to get started is to clone `toolium-template <https://github.com/Telefonica/toolium-template>`_
|
|
93
104
|
project, run the example test and add your own tests and configuration.
|
|
94
105
|
|
|
95
106
|
.. code:: console
|
|
@@ -98,8 +109,8 @@ project, run the example test and add your own tests and configuration.
|
|
|
98
109
|
$ cd toolium-template
|
|
99
110
|
$ pip install -r requirements.txt
|
|
100
111
|
|
|
101
|
-
Now, just follow `toolium-template instructions <https://github.com/Telefonica/toolium-template#running-tests>`_ to
|
|
102
|
-
how to start your testing project.
|
|
112
|
+
Now, just follow the `toolium-template instructions <https://github.com/Telefonica/toolium-template#running-tests>`_ to
|
|
113
|
+
know how to start your testing project.
|
|
103
114
|
|
|
104
115
|
**Running toolium-examples**
|
|
105
116
|
|
|
@@ -112,16 +123,16 @@ to use the library to test web, Android or iOS applications, in different scenar
|
|
|
112
123
|
$ cd toolium-examples
|
|
113
124
|
$ pip install -r requirements.txt
|
|
114
125
|
|
|
115
|
-
Now, just follow `toolium-examples instructions <https://github.com/Telefonica/toolium-examples#running-tests>`_ to
|
|
116
|
-
the examples
|
|
126
|
+
Now, just follow the `toolium-examples instructions <https://github.com/Telefonica/toolium-examples#running-tests>`_ to
|
|
127
|
+
run the test examples.
|
|
117
128
|
|
|
118
129
|
Contributing
|
|
119
130
|
------------
|
|
120
131
|
|
|
121
|
-
If you want to collaborate in Toolium development, feel free
|
|
122
|
-
and
|
|
132
|
+
If you want to collaborate in Toolium development, feel free to `fork it <https://github.com/Telefonica/toolium>`_
|
|
133
|
+
and create a pull request.
|
|
123
134
|
|
|
124
|
-
|
|
135
|
+
Then clone the repository and install the dependencies in your virtualenv:
|
|
125
136
|
|
|
126
137
|
.. code:: console
|
|
127
138
|
|
|
@@ -129,6 +140,18 @@ Don't forget to run unit tests:
|
|
|
129
140
|
$ cd toolium
|
|
130
141
|
$ pip install -r requirements.txt
|
|
131
142
|
$ pip install -r requirements_dev.txt
|
|
143
|
+
|
|
144
|
+
Before submitting your changes, make sure the code follows the project's style by running Ruff:
|
|
145
|
+
|
|
146
|
+
.. code:: console
|
|
147
|
+
|
|
148
|
+
$ ruff check --fix . # Fix linting issues
|
|
149
|
+
$ ruff format . # Format code
|
|
150
|
+
|
|
151
|
+
Then run the unit tests:
|
|
152
|
+
|
|
153
|
+
.. code:: console
|
|
154
|
+
|
|
132
155
|
$ python -m pytest
|
|
133
156
|
|
|
134
157
|
Finally, before accepting your contribution, we need you to sign our
|
|
@@ -138,15 +161,15 @@ and send it to ruben.gonzalezalonso@telefonica.com.
|
|
|
138
161
|
Main Features
|
|
139
162
|
-------------
|
|
140
163
|
|
|
141
|
-
- `Choosing driver through a configuration file
|
|
142
|
-
- `Page Object pattern
|
|
143
|
-
- `BDD integration
|
|
144
|
-
- `Visual testing solution
|
|
145
|
-
- `Tests result analysis
|
|
164
|
+
- `Choosing a driver through a configuration file </docs/driver_configuration.rst>`_
|
|
165
|
+
- `Page Object pattern </docs/page_objects.rst>`_
|
|
166
|
+
- `BDD integration </docs/bdd_integration.rst>`_
|
|
167
|
+
- `Visual testing solution </docs/visual_testing.rst>`_
|
|
168
|
+
- `Tests result analysis </docs/tests_result_analysis.rst>`_
|
|
146
169
|
|
|
147
170
|
Documentation
|
|
148
171
|
-------------
|
|
149
172
|
|
|
150
|
-
Further information about features and fixes included in each release: `CHANGELOG
|
|
173
|
+
Further information about features and fixes included in each release: `CHANGELOG </CHANGELOG.rst>`_.
|
|
151
174
|
|
|
152
|
-
Complete library reference and documentation available at `ReadTheDocs <http://toolium.readthedocs.org>`_.
|
|
175
|
+
Complete library reference and documentation are available at `ReadTheDocs <http://toolium.readthedocs.org>`_.
|
|
@@ -20,7 +20,7 @@ Getting Started
|
|
|
20
20
|
---------------
|
|
21
21
|
|
|
22
22
|
Run ``pip install toolium`` to install the latest version from `PyPi <https://pypi.org/project/toolium>`_. It's
|
|
23
|
-
highly
|
|
23
|
+
highly recommended to use a virtualenv.
|
|
24
24
|
|
|
25
25
|
The main dependencies are:
|
|
26
26
|
|
|
@@ -33,11 +33,11 @@ The main dependencies are:
|
|
|
33
33
|
- `requests <http://docs.python-requests.org>`_: to test APIs
|
|
34
34
|
|
|
35
35
|
You might need to adjust the Selenium and Appium-Python-Client versions in your project.
|
|
36
|
-
In that case follow the `compatibility matrix <https://github.com/appium/python-client?tab=readme-ov-file#compatibility-matrix>`_
|
|
36
|
+
In that case, follow the `compatibility matrix <https://github.com/appium/python-client?tab=readme-ov-file#compatibility-matrix>`_
|
|
37
37
|
|
|
38
38
|
**Using toolium-template**
|
|
39
39
|
|
|
40
|
-
The easiest way
|
|
40
|
+
The easiest way to get started is to clone `toolium-template <https://github.com/Telefonica/toolium-template>`_
|
|
41
41
|
project, run the example test and add your own tests and configuration.
|
|
42
42
|
|
|
43
43
|
.. code:: console
|
|
@@ -46,8 +46,8 @@ project, run the example test and add your own tests and configuration.
|
|
|
46
46
|
$ cd toolium-template
|
|
47
47
|
$ pip install -r requirements.txt
|
|
48
48
|
|
|
49
|
-
Now, just follow `toolium-template instructions <https://github.com/Telefonica/toolium-template#running-tests>`_ to
|
|
50
|
-
how to start your testing project.
|
|
49
|
+
Now, just follow the `toolium-template instructions <https://github.com/Telefonica/toolium-template#running-tests>`_ to
|
|
50
|
+
know how to start your testing project.
|
|
51
51
|
|
|
52
52
|
**Running toolium-examples**
|
|
53
53
|
|
|
@@ -60,16 +60,16 @@ to use the library to test web, Android or iOS applications, in different scenar
|
|
|
60
60
|
$ cd toolium-examples
|
|
61
61
|
$ pip install -r requirements.txt
|
|
62
62
|
|
|
63
|
-
Now, just follow `toolium-examples instructions <https://github.com/Telefonica/toolium-examples#running-tests>`_ to
|
|
64
|
-
the examples
|
|
63
|
+
Now, just follow the `toolium-examples instructions <https://github.com/Telefonica/toolium-examples#running-tests>`_ to
|
|
64
|
+
run the test examples.
|
|
65
65
|
|
|
66
66
|
Contributing
|
|
67
67
|
------------
|
|
68
68
|
|
|
69
|
-
If you want to collaborate in Toolium development, feel free
|
|
70
|
-
and
|
|
69
|
+
If you want to collaborate in Toolium development, feel free to `fork it <https://github.com/Telefonica/toolium>`_
|
|
70
|
+
and create a pull request.
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
Then clone the repository and install the dependencies in your virtualenv:
|
|
73
73
|
|
|
74
74
|
.. code:: console
|
|
75
75
|
|
|
@@ -77,6 +77,18 @@ Don't forget to run unit tests:
|
|
|
77
77
|
$ cd toolium
|
|
78
78
|
$ pip install -r requirements.txt
|
|
79
79
|
$ pip install -r requirements_dev.txt
|
|
80
|
+
|
|
81
|
+
Before submitting your changes, make sure the code follows the project's style by running Ruff:
|
|
82
|
+
|
|
83
|
+
.. code:: console
|
|
84
|
+
|
|
85
|
+
$ ruff check --fix . # Fix linting issues
|
|
86
|
+
$ ruff format . # Format code
|
|
87
|
+
|
|
88
|
+
Then run the unit tests:
|
|
89
|
+
|
|
90
|
+
.. code:: console
|
|
91
|
+
|
|
80
92
|
$ python -m pytest
|
|
81
93
|
|
|
82
94
|
Finally, before accepting your contribution, we need you to sign our
|
|
@@ -86,7 +98,7 @@ and send it to ruben.gonzalezalonso@telefonica.com.
|
|
|
86
98
|
Main Features
|
|
87
99
|
-------------
|
|
88
100
|
|
|
89
|
-
- `Choosing driver through a configuration file </docs/driver_configuration.rst>`_
|
|
101
|
+
- `Choosing a driver through a configuration file </docs/driver_configuration.rst>`_
|
|
90
102
|
- `Page Object pattern </docs/page_objects.rst>`_
|
|
91
103
|
- `BDD integration </docs/bdd_integration.rst>`_
|
|
92
104
|
- `Visual testing solution </docs/visual_testing.rst>`_
|
|
@@ -97,4 +109,4 @@ Documentation
|
|
|
97
109
|
|
|
98
110
|
Further information about features and fixes included in each release: `CHANGELOG </CHANGELOG.rst>`_.
|
|
99
111
|
|
|
100
|
-
Complete library reference and documentation available at `ReadTheDocs <http://toolium.readthedocs.org>`_.
|
|
112
|
+
Complete library reference and documentation are available at `ReadTheDocs <http://toolium.readthedocs.org>`_.
|
toolium-3.8.0/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.8.0
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "toolium"
|
|
7
|
+
dynamic = ["version", "dependencies", "optional-dependencies"]
|
|
8
|
+
authors = [
|
|
9
|
+
{name = "Rubén González Alonso", email = "ruben.gonzalezalonso@telefonica.com"},
|
|
10
|
+
]
|
|
11
|
+
description = "Wrapper tool of Selenium and Appium libraries to test web and mobile applications in a single project"
|
|
12
|
+
readme = "README.rst"
|
|
13
|
+
license = {text = "Apache 2.0"}
|
|
14
|
+
keywords = [
|
|
15
|
+
"selenium",
|
|
16
|
+
"appium",
|
|
17
|
+
"webdriver",
|
|
18
|
+
"web_automation",
|
|
19
|
+
"mobile_automation",
|
|
20
|
+
"page_object",
|
|
21
|
+
"visual_testing",
|
|
22
|
+
"ai",
|
|
23
|
+
"bdd",
|
|
24
|
+
"behave",
|
|
25
|
+
"pytest"
|
|
26
|
+
]
|
|
27
|
+
classifiers = [
|
|
28
|
+
"Development Status :: 5 - Production/Stable",
|
|
29
|
+
"Intended Audience :: Developers",
|
|
30
|
+
"Intended Audience :: Other Audience",
|
|
31
|
+
"License :: OSI Approved :: Apache Software License",
|
|
32
|
+
"Natural Language :: English",
|
|
33
|
+
"Operating System :: OS Independent",
|
|
34
|
+
"Programming Language :: Python :: 3.10",
|
|
35
|
+
"Programming Language :: Python :: 3.11",
|
|
36
|
+
"Programming Language :: Python :: 3.12",
|
|
37
|
+
"Programming Language :: Python :: 3.13",
|
|
38
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
39
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
40
|
+
"Topic :: Software Development :: Quality Assurance",
|
|
41
|
+
"Topic :: Software Development :: Testing",
|
|
42
|
+
"Topic :: Software Development :: Testing :: Acceptance",
|
|
43
|
+
"Topic :: Software Development :: Testing :: BDD",
|
|
44
|
+
"Topic :: Text Processing :: Linguistic",
|
|
45
|
+
]
|
|
46
|
+
requires-python = ">=3.10"
|
|
47
|
+
|
|
48
|
+
[project.urls]
|
|
49
|
+
Homepage = "https://github.com/telefonica/toolium"
|
|
50
|
+
Repository = "https://github.com/telefonica/toolium"
|
|
51
|
+
Documentation = "http://toolium.readthedocs.org/en/latest"
|
|
52
|
+
Changelog = "http://toolium.readthedocs.org/en/latest/changelog.html"
|
|
53
|
+
"Bug Tracker" = "https://github.com/telefonica/toolium/issues"
|
|
54
|
+
|
|
55
|
+
[tool.setuptools]
|
|
56
|
+
packages = [
|
|
57
|
+
"toolium",
|
|
58
|
+
"toolium.pageobjects",
|
|
59
|
+
"toolium.pageelements",
|
|
60
|
+
"toolium.pageelements.playwright",
|
|
61
|
+
"toolium.behave",
|
|
62
|
+
"toolium.utils",
|
|
63
|
+
"toolium.utils.ai_utils"
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
[tool.setuptools.package-data]
|
|
67
|
+
"toolium" = [
|
|
68
|
+
"resources/VisualTestsTemplate.html",
|
|
69
|
+
"resources/VisualTests.js",
|
|
70
|
+
"resources/VisualTests.css"
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
[tool.setuptools.dynamic]
|
|
74
|
+
version = {file = "VERSION"}
|
|
75
|
+
dependencies = {file = ["requirements.txt"]}
|
|
76
|
+
optional-dependencies.playwright = {file = ["requirements_playwright.txt"]}
|
|
77
|
+
optional-dependencies.ai = {file = ["requirements_ai.txt"]}
|
|
78
|
+
optional-dependencies.dev = {file = ["requirements_dev.txt"]}
|
|
79
|
+
|
|
80
|
+
[tool.pytest.ini_options]
|
|
81
|
+
testpaths = ["toolium/test"]
|
|
82
|
+
python_files = ["test_*.py", "*_test.py"]
|
|
83
|
+
python_classes = ["Test*"]
|
|
84
|
+
python_functions = ["test_*"]
|
|
85
|
+
addopts = "-v --tb=short"
|
|
86
|
+
|
|
87
|
+
[tool.coverage.run]
|
|
88
|
+
source = ["toolium"]
|
|
89
|
+
omit = [
|
|
90
|
+
"*/test*",
|
|
91
|
+
"*/tests/*",
|
|
92
|
+
"*/venv/*",
|
|
93
|
+
"*/.venv/*",
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
[tool.coverage.report]
|
|
97
|
+
exclude_lines = [
|
|
98
|
+
"pragma: no cover",
|
|
99
|
+
"def __repr__",
|
|
100
|
+
"if self.debug:",
|
|
101
|
+
"if settings.DEBUG",
|
|
102
|
+
"raise AssertionError",
|
|
103
|
+
"raise NotImplementedError",
|
|
104
|
+
"if 0:",
|
|
105
|
+
"if __name__ == '__main__':",
|
|
106
|
+
]
|
|
107
|
+
|
|
108
|
+
[tool.ruff]
|
|
109
|
+
line-length = 120
|
|
110
|
+
target-version = "py310"
|
|
111
|
+
|
|
112
|
+
[tool.ruff.lint]
|
|
113
|
+
# Rules to enforce
|
|
114
|
+
select = [
|
|
115
|
+
"E", # pycodestyle errors
|
|
116
|
+
"W", # pycodestyle warnings
|
|
117
|
+
"F", # pyflakes
|
|
118
|
+
"I", # isort
|
|
119
|
+
"UP", # pyupgrade
|
|
120
|
+
"N", # pep8-naming
|
|
121
|
+
"A", # flake8-builtins
|
|
122
|
+
"B", # flake8-bugbear
|
|
123
|
+
"G", # flake8-logging-format
|
|
124
|
+
"ARG", # flake8-unused-arguments
|
|
125
|
+
"COM", # flake8-commas
|
|
126
|
+
"C4", # flake8-comprehensions
|
|
127
|
+
"PT", # flake8-pytest-style
|
|
128
|
+
"T20", # flake8-print
|
|
129
|
+
"RUF", # Ruff-specific rules
|
|
130
|
+
]
|
|
131
|
+
# Rules to ignore
|
|
132
|
+
ignore = [
|
|
133
|
+
"COM812", # flake8-missing-trailing-comas (conflict with ruff format)
|
|
134
|
+
]
|
|
135
|
+
|
|
136
|
+
[tool.ruff.lint.isort]
|
|
137
|
+
combine-as-imports = true
|
|
138
|
+
split-on-trailing-comma = true
|
|
139
|
+
known-first-party = ["acceptance"]
|
|
140
|
+
section-order = [
|
|
141
|
+
"future",
|
|
142
|
+
"standard-library",
|
|
143
|
+
"third-party",
|
|
144
|
+
"first-party",
|
|
145
|
+
"local-folder"
|
|
146
|
+
]
|
|
147
|
+
|
|
148
|
+
[tool.ruff.format]
|
|
149
|
+
quote-style = "single"
|
|
150
|
+
indent-style = "space"
|
|
151
|
+
skip-magic-trailing-comma = false
|
|
152
|
+
line-ending = "auto"
|
|
@@ -4,12 +4,9 @@ coveralls~=4.0
|
|
|
4
4
|
mock~=5.0
|
|
5
5
|
requests-mock~=1.10
|
|
6
6
|
Pygments~=2.14
|
|
7
|
-
flake8~=7.3
|
|
8
7
|
build~=1.3
|
|
9
|
-
wheel~=0.
|
|
8
|
+
wheel~=0.46,>=0.46.2
|
|
10
9
|
twine~=6.2
|
|
11
10
|
behave~=1.3 # behave tests
|
|
12
11
|
importlib_metadata~=8.7
|
|
13
|
-
|
|
14
|
-
sentence-transformers~=5.1
|
|
15
|
-
openai~=2.7
|
|
12
|
+
ruff~=0.15
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
playwright~=1.43
|
toolium-3.8.0/setup.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
|
|
3
|
+
This file is part of Toolium.
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
|
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
|
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
See the License for the specific language governing permissions and
|
|
15
|
+
limitations under the License.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from setuptools import setup
|
|
19
|
+
|
|
20
|
+
setup()
|
|
21
|
+
|
|
22
|
+
"""
|
|
23
|
+
Backward compatibility setup.py
|
|
24
|
+
|
|
25
|
+
All package configuration has been moved to pyproject.toml
|
|
26
|
+
This file exists only for backward compatibility with older tools.
|
|
27
|
+
"""
|