We all get a little nervous the first time we run a deploy script on production. Well, don’t do it without proper testing first. django-fabric is used as deployment tool in several organisations. However, you should feel a lot more safe that you configured it correctly if you test it first.

One way to test it is to run a deployment of a staging environment before you deploy to your production environment.

The testing mixin

There is one way to do a no-operation run of the deployment, wich mean that every command that will be ran on your servers will be printed instead. This will give you a way to visually confirm the shell commands before running them on a server. The example below shows how to use the mixin.

from fabric.contrib import django

from django_fabric import App
from django_fabric.test_helpers import TestMixin

class TestApp(TestMixin, App):
    project_package = 'package'
    project_paths = {
        'prod': 'path-to-prod'
    restart_command = {
        'prod': 'restart prod'