Skip to content

Pytest plugin: add multihost framework.

License

Notifications You must be signed in to change notification settings

aplopez/pytest-mh

This branch is 190 commits behind next-actions/pytest-mh:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

805efa8 · Jun 15, 2023

History

26 Commits
May 4, 2023
May 31, 2023
Mar 27, 2023
Jun 15, 2023
Mar 1, 2023
May 4, 2023
Feb 7, 2023
Feb 7, 2023
Feb 7, 2023
Apr 6, 2023
Feb 7, 2023
Feb 7, 2023
Feb 7, 2023
May 4, 2023
May 4, 2023

Repository files navigation

pytest_mh - pytest multihost test framework

pytest-mh is a pytest plugin that, in its basics, allows you to run shell commands and scripts over SSH on remote Linux or Windows hosts. You want to use it to execute system or application tests for your project on remote host or hosts (or containers) while running pytest locally and thus keeping your local machine intact.

The plugin also provides building blocks that can be used to setup and teardown your tests, perform automatic clean up of all changes done on the remote host and build a flexible and unified high-level API to manipulate the hosts from your tests.

Documentation

See the full documentation here: https://pytest-mh.readthedocs.io.

Example usage

The following snippet was taken from the SSSD project.

    @pytest.mark.topology(KnownTopology.AD)
    @pytest.mark.topology(KnownTopology.LDAP)
    @pytest.mark.topology(KnownTopology.IPA)
    @pytest.mark.topology(KnownTopology.Samba)
    def test__id(client: Client, provider: GenericProvider):
        u = provider.user("tuser").add()
        provider.group("tgroup_1").add().add_member(u)
        provider.group("tgroup_2").add().add_member(u)

        client.sssd.start()
        result = client.tools.id("tuser")

        assert result is not None
        assert result.user.name == "tuser"
        assert result.memberof(["tgroup_1", "tgroup_2"])

About

Pytest plugin: add multihost framework.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%