Metadata-Version: 2.4
Name: toolium
Version: 3.8.0
Summary: Wrapper tool of Selenium and Appium libraries to test web and mobile applications in a single project
Author-email: Rubén González Alonso <ruben.gonzalezalonso@telefonica.com>
License: Apache 2.0
Project-URL: Homepage, https://github.com/telefonica/toolium
Project-URL: Repository, https://github.com/telefonica/toolium
Project-URL: Documentation, http://toolium.readthedocs.org/en/latest
Project-URL: Changelog, http://toolium.readthedocs.org/en/latest/changelog.html
Project-URL: Bug Tracker, https://github.com/telefonica/toolium/issues
Keywords: selenium,appium,webdriver,web_automation,mobile_automation,page_object,visual_testing,ai,bdd,behave,pytest
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Other Audience
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Testing :: Acceptance
Classifier: Topic :: Software Development :: Testing :: BDD
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: requests~=2.27
Requires-Dist: selenium~=4.0
Requires-Dist: Appium-Python-Client<5.0,>=2.3
Requires-Dist: Pillow<13.0,>=10.1
Requires-Dist: screeninfo~=0.8
Requires-Dist: lxml<7.0,>=5.1
Requires-Dist: Faker<39.0,>=25.9
Requires-Dist: phonenumbers<10.0,>=8.13
Provides-Extra: playwright
Requires-Dist: playwright~=1.43; extra == "playwright"
Provides-Extra: ai
Requires-Dist: langchain-openai~=1.1; extra == "ai"
Requires-Dist: langgraph~=1.0; extra == "ai"
Requires-Dist: spacy~=3.8.7; extra == "ai"
Requires-Dist: sentence-transformers~=5.1; extra == "ai"
Requires-Dist: openai~=1.108; extra == "ai"
Provides-Extra: dev
Requires-Dist: pytest~=9.0; extra == "dev"
Requires-Dist: coverage~=7.11; extra == "dev"
Requires-Dist: coveralls~=4.0; extra == "dev"
Requires-Dist: mock~=5.0; extra == "dev"
Requires-Dist: requests-mock~=1.10; extra == "dev"
Requires-Dist: Pygments~=2.14; extra == "dev"
Requires-Dist: build~=1.3; extra == "dev"
Requires-Dist: wheel>=0.46.2,~=0.46; extra == "dev"
Requires-Dist: twine~=6.2; extra == "dev"
Requires-Dist: behave~=1.3; extra == "dev"
Requires-Dist: importlib_metadata~=8.7; extra == "dev"
Requires-Dist: ruff~=0.15; extra == "dev"
Dynamic: license-file

Toolium
=======

|Build Status| |Coverage Status| |CodeClimate| |Documentation Status|

Toolium is a Python wrapper tool of Selenium, Playwright and Appium libraries to test web and mobile applications in a single
project. It provides a way of choosing and configuring the driver through a configuration file, implements a Page Object
pattern and includes a simple visual testing solution.

.. |Build Status| image:: https://github.com/Telefonica/toolium/workflows/build/badge.svg?branch=master
   :target: https://github.com/Telefonica/toolium/actions?query=branch%3Amaster
.. |Documentation Status| image:: https://readthedocs.org/projects/toolium/badge/?version=latest
   :target: http://toolium.readthedocs.org/en/latest
.. |Coverage Status| image:: https://coveralls.io/repos/Telefonica/toolium/badge.svg?branch=master&service=github
   :target: https://coveralls.io/github/Telefonica/toolium?branch=master
.. |CodeClimate| image:: https://api.codeclimate.com/v1/badges/3e5773b2e5272b546f8a/maintainability
   :target: https://codeclimate.com/github/Telefonica/toolium/maintainability

Getting Started
---------------

Run ``pip install toolium`` to install the latest version from `PyPi <https://pypi.org/project/toolium>`_. It's
highly recommended to use a virtualenv.

The main dependencies are:

- `Selenium <http://docs.seleniumhq.org/>`_: to test web applications in major browsers (Firefox, Chrome, Internet
  Explorer, Edge or Safari)
- `Playwright <https://playwright.dev/>`_: to test web applications in major browsers (Firefox, Chrome, Edge or Safari)
  as an alternative to Selenium (Beta integration in toolium)
- `Appium-Python-Client <https://github.com/appium/python-client>`_: to test mobile applications (native, hybrid or web)
  in Android or iOS devices/emulators.
- `requests <http://docs.python-requests.org>`_: to test APIs

You might need to adjust the Selenium and Appium-Python-Client versions in your project.
In that case, follow the `compatibility matrix <https://github.com/appium/python-client?tab=readme-ov-file#compatibility-matrix>`_

**Using toolium-template**

The easiest way to get started is to clone `toolium-template <https://github.com/Telefonica/toolium-template>`_
project, run the example test and add your own tests and configuration.

.. code:: console

    $ git clone git@github.com:Telefonica/toolium-template.git
    $ cd toolium-template
    $ pip install -r requirements.txt

Now, just follow the `toolium-template instructions <https://github.com/Telefonica/toolium-template#running-tests>`_ to
know how to start your testing project.

**Running toolium-examples**

You can also clone `toolium-examples <https://github.com/Telefonica/toolium-examples>`_ to get more examples about how
to use the library to test web, Android or iOS applications, in different scenarios.

.. code:: console

    $ git clone git@github.com:Telefonica/toolium-examples.git
    $ cd toolium-examples
    $ pip install -r requirements.txt

Now, just follow the `toolium-examples instructions <https://github.com/Telefonica/toolium-examples#running-tests>`_ to
run the test examples.

Contributing
------------

If you want to collaborate in Toolium development, feel free to `fork it <https://github.com/Telefonica/toolium>`_
and create a pull request.

Then clone the repository and install the dependencies in your virtualenv:

.. code:: console

    $ git clone git@github.com:<your_github_user>/toolium.git
    $ cd toolium
    $ pip install -r requirements.txt
    $ pip install -r requirements_dev.txt

Before submitting your changes, make sure the code follows the project's style by running Ruff:

.. code:: console

    $ ruff check --fix .    # Fix linting issues
    $ ruff format .         # Format code

Then run the unit tests:

.. code:: console

    $ python -m pytest

Finally, before accepting your contribution, we need you to sign our
`Contributor License Agreement <https://raw.githubusercontent.com/telefonicaid/Licensing/master/ContributionPolicy.txt>`_
and send it to ruben.gonzalezalonso@telefonica.com.

Main Features
-------------

- `Choosing a driver through a configuration file </docs/driver_configuration.rst>`_
- `Page Object pattern </docs/page_objects.rst>`_
- `BDD integration </docs/bdd_integration.rst>`_
- `Visual testing solution </docs/visual_testing.rst>`_
- `Tests result analysis </docs/tests_result_analysis.rst>`_

Documentation
-------------

Further information about features and fixes included in each release: `CHANGELOG </CHANGELOG.rst>`_.

Complete library reference and documentation are available at `ReadTheDocs <http://toolium.readthedocs.org>`_.
