2017-08-19 3 views
0

私のすべての工場で、Pythonのfactory_boyでどのようにデフォルトロケールを設定できますか?factory_boyのデフォルトfakerロケールを変更する

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' 

答えて

1

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() 
1

は、私はあなたと同じ問題を抱えている...ドキュメントで

は1つがfactory.Faker.override_default_localeでそれを設定する必要があることを述べているが、それは私のfakersに何もしません。一時的な解決策として、工場でロケールを渡してみてください.Faker。例えば

:それはドキュメントから非常に明確ではありませんが、

name = factory.Faker('first_name', locale='es_ES') 
+0

うん、私は知っているが、私はの:(開発者をやってみたかったものではありませんこのプロジェクトはあまりにも応答していません、この日も:( – Alan

関連する問題