跳转到主要内容

为您的Django应用的每个模型生成模型工厂(factory_boy)

项目描述

django-factory-generator v1.0.4 on PyPi MIT license Stable

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 包含简单的扩展 ModelFooFactoryBaseModelFooFactory 类。此文件仅生成一次,在再次运行 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 (9.6 kB 查看散列)

上传时间

构建分布

django_factory_generator-1.0.4-py2.py3-none-any.whl (14.4 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面