Kiwi TCMS pluginsΒΆ

You can design your own plugins which will be automatically discovered and loaded by Kiwi TCMS. There is an example in tcms/telemetry/tests/plugin but these are not limited to telemetry! They can be anything!

Your plugin should be packaged as a stand-alone Django application that can be installed inside Kiwi TCMS! This means to produce a pip package containing your views.py, urls.py, templates/, static/, etc files which are standard for Django applications.

There are 2 special pieces:

  • a menu.py file defining the MENU_ITEMS variable. The format is the same as tcms.settings.common.MENU_ITEMS

  • inside setup.py you need to define an entry_point:

    setup(
        ...
        entry_points={"kiwitcms.plugins": ["your_plugin_name = your_plugin_module"]},
    )
    

Kiwi TCMS will auto-discover plugins with the kiwitcms.plugins entry point and:

  • append them to INSTALLED_APPS so that templates, static files and everything else can be discovered. This means models and migrations too;

  • append their menu to MENU_ITEMS under the PLUGINS navigation item so that users can access the plugin via the web interface;

  • include their URL config in urlpatterns, using the plugin name as the URL path for inclusion!

After you have tested your plugin and packaged it as a pip package the only thing you have to do is install the tarball inside the Docker image!