2

テスト用のサンプル ユーザー アカウントを作成すると、次のエラーが発生します。

不明なパスワード ハッシュ アルゴリズム 'password1'。PASSWORD_HASHERS の設定で指定しましたか?

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

factory.py:

class UserFactory(factory.Factory):
    FACTORY_FOR = User

    username = factory.Sequence(lambda n: 'User' + n)
    email = 'mail@gmail.com'
    password = 'password1'

修正方法は?

編集:

解決:

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

2 に答える 2

1

アップデート。ドキュメントで説明されています。使用する必要がありますfactory.PostGenerationMethodCall

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

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

古い答え。実際、これはfactory-boy のドキュメントに記載されています。

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

を正しく使用できるように、このソリューションを使用することをお勧めしますUserFactory.build()(UserFactory.create()後でハッシュ化されていUserFactory.attributes()ないパスワードが返されます) 。

于 2013-06-20T05:05:26.300 に答える
0
class UserFactory(factory.Factory):
    FACTORY_FOR = User

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

こちらのドキュメントを参照してください https://factoryboy.readthedocs.org/en/v1.3.0/reference.html#postgenerationmethodcall

于 2013-08-20T10:12:01.110 に答える