为您的Django应用的每个模型生成模型工厂(factory_boy)
项目描述
django-factory-generator
为您的Django应用的每个模型生成(factory_boy)模型工厂
变更日志
1.0.4修复了Django 3.0的has_choices属性
1.0.3移除了无用的打印语句
1.0.2添加PointFieldFaker以支持PointField。重构了在生成工厂中导入模块的方式
1.0.1添加了更精确的fakers以支持BigIntegerField、IntegerField、PositiveIntegerField、PositiveSmallIntegerField和SmallIntegerField
1.0.0项目初始化
需求
此Django应用从您的已安装应用程序生成factory_boy模型工厂,因此您需要安装factory_boy。
安装
使用pip安装
pip install django_factory_generator
将factory_generator添加到您的INSTALLED_APPS设置中。
INSTALLED_APPS = (
...
'factory_generator',
...
)
生成工厂
使用单个命令行生成工厂
python manage.py generate_factories
这将创建一个名为 model_factories 的目录,具有以下结构
|__ model_factories/ |__ app_label_foo/ |__ __init__.py |__ model_foo.py |__ model_bar.py |__ base/ |__ __init__.py |__ model_foo.py |__ model_bar.py
每个模型将生成两个文件
model_factories/app_label_foo/base/model_foo 包含由模型 ModelFoo 生成的 ModelFooFactoryBase 类定义。此文件 不应手动编辑,因为每次运行 generate_factories 命令时都会被覆盖。
model_factories/app_label_foo/model_foo 包含简单的扩展 ModelFooFactoryBase 的 ModelFooFactory 类。此文件仅生成一次,在再次运行 generate_factories 命令时不会被覆盖。
这种结构使您能够 覆盖 自动生成的 ModelFactory。然后您可以编辑 ModelFooFactory 来更改或编辑生成的基字段。
您可以使用以下方式导入模型工厂
# app_label/tests.py from django.test import TestCase from model_factories.app_label import ModelFooFactory, ModelBarFactory class FooTests(TestCase): def test_model_factory(self): modelfoo = ModelFooFactory( foo='bar', ) modelbar = ModelBarFactory( bar='baz', ) # Run your tests here
设置
以下是您可以使用的所有设置,以及它们的默认值
FACTORY_NORMALIZE_FIELD_MAP = {} FACTORY_FIELD_FAKER_MAP = {} FACTORY_IGNORE_FIELDS = [] FACTORY_ROOT_DIR = 'model_factories' FACTORY_IGNORE_NON_EDITABLE_FIELDS = True
待办事项
改进文档
编写单元测试
验证与 Django 和 Python 早期版本的兼容性
支持
如果您遇到问题,请告知我们或提交一个 pull 请求。
许可证
该项目受 MIT 许可证许可。
项目详情
django_factory_generator-1.0.4.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 358c82b47828e7f700145f610e978eaa0ca346ed6c7c83befe26d26a3f1fb4d6 |
|
MD5 | 85b92a2d801bc95a115274cbf1445112 |
|
BLAKE2b-256 | e85deaf21773cab47d793fdef886d89ccae29ba43b3e0416db0ffea7d888c0f8 |
django_factory_generator-1.0.4-py2.py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 23d64bd1ef65b0fa2e5120c016e222185939eac203dcda2370cc9e2dfce4632d |
|
MD5 | d839ba1ce8dc4ed0312276413ec211ca |
|
BLAKE2b-256 | edc8811e68c1b0d956d9634ce374c60a8aba5d47bb10df22cf93f8d0fd2cdace |