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.
Files changed (78) hide show
  1. {toolium-3.6.0.dev3 → toolium-3.8.0}/CHANGELOG.rst +24 -1
  2. {toolium-3.6.0.dev3/toolium.egg-info → toolium-3.8.0}/PKG-INFO +56 -33
  3. {toolium-3.6.0.dev3 → toolium-3.8.0}/README.rst +24 -12
  4. toolium-3.8.0/VERSION +1 -0
  5. toolium-3.8.0/pyproject.toml +152 -0
  6. toolium-3.8.0/requirements_ai.txt +5 -0
  7. {toolium-3.6.0.dev3 → toolium-3.8.0}/requirements_dev.txt +2 -5
  8. toolium-3.8.0/requirements_playwright.txt +1 -0
  9. toolium-3.8.0/setup.py +27 -0
  10. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/behave/env_utils.py +32 -32
  11. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/behave/environment.py +57 -24
  12. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_driver.py +55 -44
  13. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_driver_playwright.py +25 -26
  14. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_files.py +1 -2
  15. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/config_parser.py +35 -20
  16. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/driver_wrapper.py +69 -41
  17. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/driver_wrappers_pool.py +57 -33
  18. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/jira.py +22 -12
  19. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/__init__.py +31 -5
  20. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/button_page_element.py +1 -1
  21. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/checkbox_page_element.py +1 -2
  22. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/group_page_element.py +16 -5
  23. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/input_radio_page_element.py +1 -2
  24. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/input_text_page_element.py +9 -7
  25. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/link_page_element.py +1 -2
  26. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/page_element.py +37 -19
  27. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/page_elements.py +16 -6
  28. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/__init__.py +1 -2
  29. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/button_page_element.py +0 -1
  30. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/input_text_page_element.py +3 -4
  31. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/page_element.py +2 -3
  32. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/playwright/text_page_element.py +0 -1
  33. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/select_page_element.py +0 -1
  34. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageelements/text_page_element.py +0 -1
  35. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/common_object.py +20 -15
  36. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/mobile_page_object.py +2 -3
  37. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/page_object.py +5 -4
  38. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pytest_fixtures.py +19 -12
  39. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/selenoid.py +30 -25
  40. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/test_cases.py +44 -18
  41. toolium-3.8.0/toolium/utils/ai_utils/accuracy.py +307 -0
  42. toolium-3.8.0/toolium/utils/ai_utils/ai_agent.py +128 -0
  43. toolium-3.8.0/toolium/utils/ai_utils/evaluate_answer.py +244 -0
  44. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/openai.py +24 -14
  45. toolium-3.8.0/toolium/utils/ai_utils/prompt_injection.py +68 -0
  46. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/spacy.py +6 -8
  47. toolium-3.8.0/toolium/utils/ai_utils/text_analysis.py +116 -0
  48. toolium-3.8.0/toolium/utils/ai_utils/text_readability.py +102 -0
  49. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/text_similarity.py +42 -34
  50. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/data_generator.py +7 -7
  51. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/dataset.py +125 -106
  52. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/download_files.py +42 -28
  53. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/driver_utils.py +60 -48
  54. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/driver_wait_utils.py +16 -9
  55. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/path_utils.py +0 -1
  56. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/poeditor.py +54 -51
  57. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/visual_test.py +69 -42
  58. {toolium-3.6.0.dev3 → toolium-3.8.0/toolium.egg-info}/PKG-INFO +56 -33
  59. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium.egg-info/SOURCES.txt +7 -0
  60. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium.egg-info/requires.txt +15 -2
  61. toolium-3.6.0.dev3/VERSION +0 -1
  62. toolium-3.6.0.dev3/setup.py +0 -110
  63. toolium-3.6.0.dev3/toolium/utils/ai_utils/accuracy.py +0 -186
  64. toolium-3.6.0.dev3/toolium/utils/ai_utils/prompt_injection.py +0 -67
  65. {toolium-3.6.0.dev3 → toolium-3.8.0}/LICENSE +0 -0
  66. {toolium-3.6.0.dev3 → toolium-3.8.0}/MANIFEST.in +0 -0
  67. {toolium-3.6.0.dev3 → toolium-3.8.0}/requirements.txt +0 -0
  68. {toolium-3.6.0.dev3 → toolium-3.8.0}/setup.cfg +0 -0
  69. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/__init__.py +0 -0
  70. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/behave/__init__.py +0 -0
  71. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/pageobjects/__init__.py +0 -0
  72. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/resources/VisualTests.css +0 -0
  73. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/resources/VisualTests.js +0 -0
  74. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/resources/VisualTestsTemplate.html +0 -0
  75. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/__init__.py +0 -0
  76. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium/utils/ai_utils/__init__.py +0 -0
  77. {toolium-3.6.0.dev3 → toolium-3.8.0}/toolium.egg-info/dependency_links.txt +0 -0
  78. {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: In development*
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.6.0.dev3
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
- Home-page: https://github.com/telefonica/toolium
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
- Dynamic: author
41
- Dynamic: author-email
42
- Dynamic: classifier
43
- Dynamic: description
44
- Dynamic: description-content-type
45
- Dynamic: home-page
46
- Dynamic: keywords
47
- Dynamic: license
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 recommendable to use a virtualenv.
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 of getting started is to clone `toolium-template <https://github.com/Telefonica/toolium-template>`_
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 know
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 run
116
- the examples of the tests.
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 of `forking it <https://github.com/Telefonica/toolium>`_
122
- and asking for a pull request.
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
- Don't forget to run unit tests:
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 <http://toolium.readthedocs.org/en/latest/driver_configuration.html>`_
142
- - `Page Object pattern <http://toolium.readthedocs.org/en/latest/page_objects.html>`_
143
- - `BDD integration <http://toolium.readthedocs.org/en/latest/bdd_integration.html>`_
144
- - `Visual testing solution <http://toolium.readthedocs.org/en/latest/visual_testing.html>`_
145
- - `Tests result analysis <http://toolium.readthedocs.org/en/latest/tests_result_analysis.html>`_
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 <http://toolium.readthedocs.org/en/latest/changelog.html>`_.
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 recommendable to use a virtualenv.
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 of getting started is to clone `toolium-template <https://github.com/Telefonica/toolium-template>`_
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 know
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 run
64
- the examples of the tests.
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 of `forking it <https://github.com/Telefonica/toolium>`_
70
- and asking for a pull request.
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
- Don't forget to run unit tests:
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"
@@ -0,0 +1,5 @@
1
+ langchain-openai~=1.1 # OpenAI LLMs in AI agents
2
+ langgraph~=1.0 # AI agents
3
+ spacy~=3.8.7
4
+ sentence-transformers~=5.1
5
+ openai~=1.108 # OpenAI LLMs
@@ -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.40
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
- spacy~=3.8
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
+ """