Integrated runner

Django App Helper provide a runner to invoke the commands without requiring the django-app-helper file; this can be useful to invoke tests with coverage or to have a simpler syntax to remember.

Typically you’d setup the runner function in the extra settings file:

HELPER_SETTINGS={
    'INSTALLED_APPS': [
        'any_django_app',
    ],
    'ANY_SETTING: False,
    ...
}


def run():
    from app_helper import runner
    runner.cms('my_app')

if __name__ == "__main__":
    run()

with the above code in place you can run any Django App Helper command as:

python helper.py <command>

and adding the test_suite argument to setup.py:

setup(
    ...
    test_suite='app_helper.run',
    ...
)

you can invoke the tests with:

python setup.py test

Django environment

If you don’t need django CMS, you can use a runner function with no CMS attached:

def run():
    from app_helper import runner
    runner.run('my_app')

if __name__ == "__main__":
    run()

Warning

The runner must be invoked from the settings file. The runner takes care of setting up the file in which is invoked as the extra_settings file.

Naked setup

Sometimes you just want to properly setup a Django environment without running any commands (e.g: when building Sphinx docs using autodoc). Naked setup allows to do so:

def setup():
    import sys
    from app_helper import runner
    runner.setup('my_app', sys.modules[__name__], use_cms=True)

if __name__ == "cms_helper":
    setup()

the last lines allows to auto-load naked setup when runner file is imported. This is useful when running tests in a PyCharm environment. In case you customized the runner filename, replace "cms_helper" with the custom name.

Warning

The runner must be invoked from the settings file. The runner takes care of setting up the file in which is invoked as the extra_settings file.