2013-02-27 1 views
2

Si je crée l'échantillon compte utilisateur pour le test j'ai cette erreur:Algorithme de hachage de mot de passe inconnu. PASSWORD_HASHERS réglage - en utilisant garçon usine

Unknown password hashing algorithm 'password1'. Did you specify it in the PASSWORD_HASHERS setting?

class ExampleTest(TestCase): 
    def test_sample_data(self): 
     for i in range(0,1): 
      user = content.factories.UserFactory.create() 

factories.py:

class UserFactory(factory.Factory): 
    FACTORY_FOR = User 

    username = factory.Sequence(lambda n: 'User' + n) 
    email = '[email protected]' 
    password = 'password1' 

Comment réparer?

EDIT:

Solution:

user = content.factories.UserFactory.create() 
user.set_password('yourpassword') 
user.save() 

Répondre

1

UPDATE. Il est décrit dans documentation, vous devez utiliser factory.PostGenerationMethodCall:

class UserFactory(factory.Factory): 
    class Meta: 
     model = User 

    username = 'user' 
    password = factory.PostGenerationMethodCall('set_password', 
               'defaultpassword') 

RÉPONSE VIEUX. En fait, cela est décrit dans factory-boy documentation:

class UserFactory(factory.Factory): 
    @classmethod 
    def _prepare(cls, create, **kwargs): 
     password = kwargs.pop('password', None) 
     user = super(UserFactory, cls)._prepare(create, **kwargs) 
     if password: 
      user.set_password(password) 
      if create: 
       user.save() 
     return user 

Une meilleure utilisation de cette solution, vous pouvez utiliser correctement UserFactory.build(), UserFactory.create() et UserFactory.attributes() (reviendrai plus tard le mot de passe non hachés)

+1

ya, a été déplacé vers: https://factoryboy.readthedocs.org/en/latest/reference.html?highlight=password#postgenerationmethodcall – CpILL

Questions connexes