Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ansible-community/pytest-molecule
Please switch to pytest-ansible
https://github.com/ansible-community/pytest-molecule
ansible ansible-devtools molecule pytest pytest-plugin
Last synced: 3 months ago
JSON representation
Please switch to pytest-ansible
- Host: GitHub
- URL: https://github.com/ansible-community/pytest-molecule
- Owner: ansible-community
- License: mit
- Archived: true
- Created: 2019-06-18T08:59:54.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-09-14T18:50:22.000Z (about 1 year ago)
- Last Synced: 2024-05-21T07:07:13.767Z (7 months ago)
- Topics: ansible, ansible-devtools, molecule, pytest, pytest-plugin
- Language: Python
- Homepage: https://github.com/ansible-community/pytest-ansible
- Size: 176 KB
- Stars: 23
- Watchers: 8
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-repositories - ansible-community/pytest-molecule - Please switch to pytest-ansible (Python)
README
===============
Notice
===============The functionality provided by this plugin has been merged into the pytest-ansible_ plugin.
Please switch to `pytest-ansible` for future updates.
===============
pytest-molecule
===============.. image:: https://img.shields.io/pypi/v/pytest-molecule.svg
:target: https://pypi.org/project/pytest-molecule
:alt: PyPI version.. image:: https://img.shields.io/pypi/pyversions/pytest-molecule.svg
:target: https://pypi.org/project/pytest-molecule
:alt: Python versions.. image:: https://zuul-ci.org/gated.svg
:target: https://dashboard.zuul.ansible.com/t/ansible/builds?project=pycontribs/selinux
:alt: See Build Status on Zuul CI.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/python/black
:alt: Python Black Code StylePyTest Molecule Plugin :: auto detects and runs molecule tests
----
This plugin enables pytest discovery of all ``molecule.yml`` files inside the
codebase and runs them as pytest tests.Once you install pytest-molecule you should be able to just run ``pytest`` in
order to run molecule on all roles and scenarios.Optionally you can define ``MOLECULE_OPTS`` for passing extra parameters to
each molecule call.Discovered tests do have molecule ``driver`` and ``platforms`` added as
markers_, so you can selectively limit which test types to run:.. code-block:: shell
# Lists all tests that uses docker
$ pytest --collect-only -m docker# Runs scenarios with platform named centos7 and delegated driver:
$ pytest -m delegated -m centos7If the molecule scenario does not contain information about the driver, the
test associated with it gets a ``no_driver`` mark.Please note that at this moment molecule will run the entire scenario if the
markers are platforms, this is not *yet* a way to limit which platforms are
executed inside a specific scenario.All tests are added the ``molecule`` marker.
This plugin also adds a new pytest option named
``--molecule-unavailable-driver=skip`` which can be used to tell it what to do
when molecule drivers are not loading. Current default is ``None`` but you
can choose marks like ``skip`` or ``xfail``.The plugin adds ``--skip-no-git-change`` option which an be used to skip tests
on unchanged roles according to ``git diff`` result and thus can only be used
only when running pytest inside a git repository. It takes one argument and old
refspec used as a reference. For instance calling:
``pytest --skip-no-git-change HEAD^`` will result in molecule of roles that
weren't changed in the last commit being skipped.Using xfail and skip markers
----------------------------If you need to skip or ignore a particular scenario, just add either ``xfail``
or ``skip`` to markers list inside its config file... code-block:: yaml
markers:
- xfail # broken scenario, pytest will run it but ignore the resultInstallation
------------You can install "pytest-molecule" via pip_ from PyPI_:
.. code-block:: shell
$ PIP_NO_BUILD_ISOLATION=false pip install pytest-molecule
``PIP_NO_BUILD_ISOLATION`` is needed only on ancient python distributions to
workaround https://github.com/pypa/pip/issues/5229Contributing
------------
Contributions are very welcome. Tests can be run with tox_, please ensure
the coverage at least stays the same before you submit a pull request.License
-------Distributed under the terms of the MIT_ license, "pytest-molecule" is free
and open source softwareIssues
------If you encounter any problems, please `file an issue`_ along with a detailed
description... _`MIT`: http://opensource.org/licenses/MIT
.. _`file an issue`: https://github.com/pycontribs/pytest-molecule/issues
.. _`pytest`: https://github.com/pytest-dev/pytest
.. _`tox`: https://tox.readthedocs.io/en/latest/
.. _`pip`: https://pypi.org/project/pip/
.. _`PyPI`: https://pypi.org/project
.. _markers: http://doc.pytest.org/en/latest/example/markers.html
.. _pytest-ansible: https://github.com/ansible-community/pytest-ansible