spytest

Wrapper library for writing large test for Snap plugins


License
Other
Install
pip install spytest==0.2

Documentation

snap pytest (spytest)

Module for writing large tests (integration tests) for snap plugins.

  1. Documentation
  2. License
  3. Acknowledgements

Documentation

Setting up binaries

The bins package provides objects like:

  • Binaries for agregation
  • Snapd to interact with Snap daemon binary
  • Snapctl to interact with snapctl binary
  • Plugin to handle plugin binaries
    # set and download required binaries (snapd, snapctl, plugins)
    binaries = bins.Binaries()
    binaries.snapd = bins.Snapd(snapd_url, snap_dir)
    binaries.snapctl = bins.Snapctl(snapctl_url, snap_dir)
    binaries.collector = bins.Plugin(psutil_url, plugins_dir, "collector", 7)
    binaries.processor = bins.Plugin(passthru_url, plugins_dir, "processor", -1)
    binaries.publisher = bins.Plugin(mockfile_url, plugins_dir, "publisher", -1)

Download binaries

    utils.download_binaries(binaries)

Start snapd

    binaries.snapd.start()
        if not binaries.snapd.isAlive():
            fail("snapd thread died")

Interact with snapctl

    # load all plugins
    for plugin in binaries.get_all_plugins():
        loaded = binaries.snapctl.load_plugin(plugin)

    # check available metrics, plugins and tasks
    metrics = binaries.snapctl.list_metrics()
    plugins = binaries.snapctl.list_plugins()
    tasks = binaries.snapctl.list_tasks()

License

Snap, along with this module, is an Open Source software released under the Apache 2.0 License.

Acknowledgements