2017-08-19 3 views
0

Comment puis-je définir les paramètres régionaux par défaut dans factory_boy de Python pour toutes mes usines?Modifier les paramètres régionaux faker par défaut dans factory_boy

Dans docs dit que l'on devrait le mettre avec factory.Faker.override_default_locale mais qui ne fait rien à mes faussaires ...

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' 

Répondre

1

Le Faker.override_default_locale() est un gestionnaire de contexte, bien que ce n'est pas très clair de la documentation.

Cela signifie que vous devez utiliser l'une de ces formes dans votre code:

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

Ou:

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

J'ai même question que le vôtre. Pour une solution temporaire, essayez de passer les paramètres régionaux dans factory.Faker.

Par exemple:

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

yup, je sais, mais ce n'est pas ce que je voulais faire :(devs de le projet ne sont pas trop réactif ces jours-ci non plus :( – Alan