def test_forgot_password_creates_no_activations_when_validation_fails(activation_model): request = DummyRequest(method='POST') controller = ForgotPasswordController(request) controller.form = invalid_form() controller.forgot_password() assert activation_model.call_count == 0
def test_forgot_password_creates_no_activations_when_validation_fails(activation_model, authn_policy): request = DummyRequest(method='POST') authn_policy.authenticated_userid.return_value = None controller = ForgotPasswordController(request) controller.form = invalid_form() controller.forgot_password() assert activation_model.call_count == 0
def test_forgot_password_generates_reset_link(reset_link): request = DummyRequest(method='POST') request.registry.password_reset_serializer = FakeSerializer() user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) controller.forgot_password() reset_link.assert_called_with(request, "faketoken")
def test_forgot_password_sends_mail(reset_mail, authn_policy, mailer): request = DummyRequest(method='POST') authn_policy.authenticated_userid.return_value = None user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) message = reset_mail.return_value controller.forgot_password() assert message in mailer.outbox
def test_forgot_password_generates_reset_link_from_activation(reset_link, activation_model, authn_policy): request = DummyRequest(method='POST') authn_policy.authenticated_userid.return_value = None user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) activation_model.return_value.code = "abcde12345" controller.forgot_password() reset_link.assert_called_with(request, "abcde12345")
def test_forgot_password_creates_activation_for_user(activation_model, authn_policy): request = DummyRequest(method='POST') authn_policy.authenticated_userid.return_value = None activation = activation_model.return_value user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) controller.forgot_password() activation_model.assert_called_with() assert activation in request.db.added assert user.activation == activation
def test_forgot_password_generates_mail(reset_link, reset_mail, activation_model, authn_policy): request = DummyRequest(method='POST') request.registry.password_reset_serializer = FakeSerializer() authn_policy.authenticated_userid.return_value = None user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) reset_link.return_value = "http://example.com" controller.forgot_password() reset_mail.assert_called_with(user, "faketoken", "http://example.com")
def test_forgot_password_returns_form_when_validation_fails(): request = DummyRequest(method='POST') controller = ForgotPasswordController(request) controller.form = invalid_form() result = controller.forgot_password() assert result == {'form': 'invalid form'}
def test_forgot_password_returns_form_when_validation_fails(authn_policy): request = DummyRequest(method='POST') authn_policy.authenticated_userid.return_value = None controller = ForgotPasswordController(request) controller.form = invalid_form() result = controller.forgot_password() assert result == {'form': 'invalid form'}
def test_forgot_password_generates_mail(reset_link, reset_mail, activation_model): request = DummyRequest(method='POST') request.registry.password_reset_serializer = FakeSerializer() user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) reset_link.return_value = "http://example.com" reset_mail.return_value = { 'recipients': [], 'subject': '', 'body': '' } controller.forgot_password() reset_mail.assert_called_with(user, "faketoken", "http://example.com")
def test_forgot_password_redirects_on_success(authn_policy): request = DummyRequest(method='POST') authn_policy.authenticated_userid.return_value = None user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) result = controller.forgot_password() assert isinstance(result, httpexceptions.HTTPRedirection)
def test_forgot_password_redirects_on_success(): request = DummyRequest(method='POST') request.registry.password_reset_serializer = FakeSerializer() user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) result = controller.forgot_password() assert isinstance(result, httpexceptions.HTTPRedirection)
def test_forgot_password_sends_mail(reset_mail, mailer): request = DummyRequest(method='POST') request.registry.password_reset_serializer = FakeSerializer() user = FakeUser(username='******', email='*****@*****.**') controller = ForgotPasswordController(request) controller.form = form_validating_to({"user": user}) message = reset_mail.return_value reset_mail.return_value = { 'recipients': ['*****@*****.**'], 'subject': 'subject', 'body': 'body' } controller.forgot_password() mailer.send.assert_called_once_with(request, recipients=['*****@*****.**'], subject='subject', body='body')