Rails-devise: генерация значений encrypted_password (для тестовых пользователей) - PullRequest
2 голосов
/ 19 сентября 2011

Чтобы протестировать мое приложение Rails / Devise, я хочу создать 100 пользователей и войти в систему как они.

Я попробовал следующее:

INSERT INTO users (id,email,encrypted_password)
  VALUES (11,"test1@example.com",
    "$2a$10$VQJ9lT78.e1dtyAnkng1/ey9euL6hK/kUNQMDv8VJMAovXpuVNDZG");

Для encrypted_password, ятолько что скопировал значение от другого пользователя с паролем testtest

ПРОБЛЕМА: я не могу войти как test1@example.com с паролем testtest

Я подозреваю, что encrypted_password имеет соль, и янужен инструмент для его генерации.config.encryptor - это bcrypt.Я установил bcrypt (Linux), но man-страница очень короткая и объясняет только, как шифровать файлы, поэтому я думаю, что это не самый удобный инструмент для определения паролей.

Как быстро создать 100 соленых паролей?
Что-то быстрее, чем 100 раз зарегистрироваться.

1 Ответ

5 голосов
/ 19 сентября 2011

Создание u = User.create(:email => 'youruser@mail.com', :password => 'testtest', :password_confirmation => 'testtest'), а затем u.confirm! (если вы используете подтверждающий модуль) из ваших тестов должно правильно генерировать для пользователя encrypted_password.

В любом случае вам следует рассмотреть возможность использования осветительных приборов или чертежей для ваших тестов.

...