用于在单元测试中创建假模型的简单库。
django-fake-model的Python项目详细描述
用于在单元测试中创建假模型的简单库。
这个简单的库允许在测试中创建假模型,而不需要迁移、测试应用程序和测试表。您需要的所有表都将在测试期间创建/删除。
安装
安装Django Fake型号:
pip install django-fake-model
快速启动
只需在任何文件(例如:在测试中)中创建一个模型,然后添加decorator@your model.fake\u me来测试方法或测试类。
fromdjango_fake_modelimportmodelsasffromdjango.dbimportmodelsfromdjango.testimportTestCase,TransactionTestCaseclassMyFakeModel(f.FakeModel):name=models.CharField(max_length=100)@MyFakeModel.fake_meclassMyFakeModelTests(TestCase):deftest_create_model(self):MyFakeModel.objects.create(name='123')model=MyFakeModel.objects.get(name='123')self.assertEqual(model.name,'123')classMyFakeModelFunctionTest(TestCase):@MyFakeModel.fake_medeftest_create_model(self):MyFakeModel.objects.create(name='123')model=MyFakeModel.objects.get(name='123')self.assertEqual(model.name,'123')classRelatedModel(f.FakeModel):text=models.CharField(max_length=400)classNyModel(f.FakeModel):text=models.CharField(max_length=400)related_model=models.ForeignKey(RelatedModel)@NyModel.fake_me@RelatedModel.fake_meclassTestRelatedModelsClassDecorator(TransactionTestCase):deftest_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_modelmy_model.save()self.assertIsNotNone(my_model)self.assertIsNotNone(related_model)
开发:
若要使用Docker在本地开发此引擎,请安装Docker引擎并 Docker Compose。然后你可以建立Docker镜像并运行测试 在所有tox活动中(这也使用共享pip缓存来减少下载 次数:
docker-compose up -d pg mysql docker-compose run --rm test
如果您只想运行一个tox活动,也可以指定:
docker-compose run --rm test tox -e py35-dj19-mysql-unittest
如果添加任何依赖项或更改tox配置,则 重建图像:
docker-compose build
它将与Docker容器共享此文件夹,以便
历史记录
0.1.4(2016-02-08)
- 修复鼻子测试的类装饰器
0.1.3(2015-12-23)
- 修复问题1多个假模型。感谢索尔·沙纳布鲁克(@saul shanabrook)
- 增加对Docker开发的支持。再次感谢索尔·沙纳布鲁克
0.1.2(2015-11-13)
- 添加了django 1.9支持
- 添加了Travis配置生成器
- 增加了鼻子测试
- 删除django master的测试
0.1.1(2015-09-28)
- 添加了不同数据库的测试。
0.1.0(2015-09-16)
- pypi上的第一个版本。