gpt4 book ai didi

python - 在 factory_boy 中更改默认的 faker 语言环境

转载 作者:太空狗 更新时间:2023-10-30 00:31:09 26 4
gpt4 key购买 nike

如何在 Python 的 factory_boy 中为我的所有工厂设置默认语言环境?

在文档中说应该用 factory.Faker.override_default_locale 设置它,但这对我的伪造者没有任何作用......

import factory
from app.models import Example
from custom_fakers import CustomFakers

# I use custom fakers, this indeed are added
factory.Faker.add_provider(CustomFakers)
# But not default locales
factory.Faker.override_default_locale('es_ES')

class ExampleFactory(factory.django.DjangoModelFactory):
class Meta:
model = Example

name = factory.Faker('first_name')


>>> from example import ExampleFactory
>>> e1 = ExampleFactory()
>>> e1.name
>>> u'Chad'

最佳答案

Faker.override_default_locale() 是一个上下文管理器,尽管文档中不是很清楚。

因此,要更改部分测试的默认语言环境:

with factory.Faker.override_default_locale('es_ES'):
ExampleFactory()

对于整个测试:

@factory.Faker.override_default_locale('es_ES')
def test_foo(self):
user = ExampleFactory()

对于所有测试(Django):

# settings.py
TEST_RUNNER = 'myproject.testing.MyTestRunner'

# myproject/testing.py
import factory
from django.conf import settings
from django.util import translation
import django.test.runner

class MyTestRunner(django.test.runner.DiscoverRunner):
def run_tests(self, test_labels, extra_tests=None, **kwargs):
with factory.Faker.override_default_locale(translation.to_locale(settings.LANGUAGE_CODE)):
return super().run_tests(test_labels, extra_tests=extra_tests, **kwargs)

更多信息 here .

关于python - 在 factory_boy 中更改默认的 faker 语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45773954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com