Over a million developers have joined DZone.
Platinum Partner

All Tests Passed - Have a Banana: Colored Output while doing TDD with DJango and Fabric

· Web Dev Zone

The Web Dev Zone is brought to you by Stormpath—offering a pre-built Identity API for developers. Easily build powerful user management, authentication, and authorization into your web and mobile applications. Download this Forrester report on the new landscape of Customer Identity and Access Management.

I'm a big fan of using PHPUnit with console colors turned on (using the --colors option). Eg:

/static/images/screenshots/phpunit.jpg


It helps get into the natural "red, green, refactor" rhythm.

I'm currently totally immersed in Django, and greatly miss the lack of colour support within the "test" management command. A simple workaround for this is to use Fabric with a few modified color commands. Your fabric file should include the following:

from fabric.colors import _wrap_with

green_bg = _wrap_with('42')
red_bg = _wrap_with('41')

# Set the list of apps to test
env.test_apps = "app1 app2"

def test():
    with settings(warn_only=True):
        result = local('./manage.py test %(test_apps)s --settings=settings_test -v 2 --failfast' % env, capture=False)
    if result.failed:
        print red_bg("Some tests failed")
    else:
        print
        print green_bg("All tests passed - have a banana!")


You can choose your own success and failure messages.

Now we have lovely colors while doing TDD in Django:

/static/images/screenshots/fab.jpg



Source: http://codeinthehole.com/writing/coloured-output-while-doing-tdd-with-django-and-fabric/

The Web Dev Zone is brought to you by Stormpath—offering a pre-built, streamlined User Management API for building web and mobile applications. Plan On Building User Management? Buy It Instead. Download Our White Paper To Learn More.

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}