This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

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

Install django-fake-model:

pip install django-fake-model

Quickstart

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)


@MyFakeModel.fake_me
class MyFakeModelTests(TestCase):

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


class MyFakeModelFunctionTest(TestCase):

    @MyFakeModel.fake_me
    def test_create_model(self):
        MyFakeModel.objects.create(name='123')
        model = MyFakeModel.objects.get(name='123')
        self.assertEqual(model.name, '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)


@NyModel.fake_me
@RelatedModel.fake_me
class TestRelatedModelsClassDecorator(TransactionTestCase):

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

Development:

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

History

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.
Release History

Release History

0.1.4

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django_fake_model-0.1.4-py2.py3-none-any.whl (7.1 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Feb 8, 2016
django-fake-model-0.1.4.tar.gz (6.1 kB) Copy SHA256 Checksum SHA256 Source Feb 8, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting