In case someone googles here searching for the solution for a given problem, here is the skeleton on how to perform unit tests on django production database. Check the django docs section here, for the file/directory structure, and instructions on where to put the given code. It should go in yourapp/management/commands/newcommandname.py
, and both the management and commands folders should contain empty __init__.py
files which makes python treat them as valid modules.
The test suite can by run as:
$python manage.py newcommandname
And here comes the code you should put in yourapp/management/commands/newcommandname.py
:
from django.core.management.base import BaseCommand
import unittest
class Command(BaseCommand):
help = """
If you need Arguments, please check other modules in
django/core/management/commands.
"""
def handle(self, **options):
suite = unittest.TestLoader().loadTestsFromTestCase(TestChronology)
unittest.TextTestRunner().run(suite)
class TestChronology(unittest.TestCase):
def setUp(self):
print "Write your pre-test prerequisites here"
def test_equality(self):
"""
Tests that 1 + 1 always equals 2.
"""
from core.models import Yourmodel
self.failUnlessEqual(1 + 1, 2)