Skip to main content

Simple library for creating fake models in the unit tests.

Project description Code Health Requirements Status

Simple library for creating fake models in the unit tests.

This simple library allows to create fake models in your test without migrations, test apps and test tables in your base. All tables that you need will created/removed during the test.


Install django-fake-model:

pip install django-fake-model


Just create a model in any file (Ex: in your test) and add decorator @YourModel.fake_me to test method or test class.

from django_fake_model import models as f
from django.db import models
from django.test import TestCase, TransactionTestCase

class MyFakeModel(f.FakeModel):

    name = models.CharField(max_length=100)

class MyFakeModelTests(TestCase):

    def test_create_model(self):
        model = MyFakeModel.objects.get(name='123')
        self.assertEqual(, '123')

class MyFakeModelFunctionTest(TestCase):

    def test_create_model(self):
        model = MyFakeModel.objects.get(name='123')
        self.assertEqual(, '123')

class RelatedModel(f.FakeModel):
    text = models.CharField(max_length=400)

class NyModel(f.FakeModel):
    text = models.CharField(max_length=400)
    related_model = models.ForeignKey(RelatedModel)

class TestRelatedModelsClassDecorator(TransactionTestCase):

    def test_create_models(self):
        related_model = RelatedModel()
        related_model.text = 'qwerty'
        my_model = NyModel()
        my_model.test = 'qwerty'
        my_model.related_model = related_model


To develop on this locally with Docker, install the Docker Engine and Docker Compose. Then you can build the Docker image and run the tests on all tox activities(this also uses a shared pip cache to reduce download times):

docker-compose up -d pg mysql
docker-compose run --rm test

If you wanna run just one Tox activity you can specify that as well:

docker-compose run --rm test tox -e py35-dj19-mysql-unittest

If you add any dependencies or change the tox configuration, you have to rebuild the image:

docker-compose build

It will share this folder with the Docker containers, so that

Cookiecutter Tools Used in Making This Package

  • cookiecutter

  • cookiecutter-djangopackage


0.1.4 (2016-02-08)

  • Fix class decorator fake_me for nose tests

0.1.3 (2015-12-23)

  • Fix issue #1 Multiple Fake Models. Thanks to Saul Shanabrook (@saulshanabrook)

  • Add support for developing with Docker. Thanks to Saul Shanabrook again

0.1.2 (2015-11-13)

  • Added Django 1.9 support

  • Added travis config generator

  • Added nose tests

  • Remove tests for Django master

0.1.1 (2015-09-28)

  • Added tests with different databases.

0.1.0 (2015-09-16)

  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-fake-model-0.1.4.tar.gz (6.1 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page