def send_confirmation_message(self): """Sends an email confirmation message to the user.""" username = self.request.POST.get('username', '').strip() redirect_url = route_url('reset_password', self.request) log = logging.getLogger('nuorisovaalitadmin') if not username: self.request.session.flash(u'Anna käyttäjätunnus.') else: user = self.session.query(User).filter(User.username == username).first() if user is None: self.request.session.flash(u'Annettua käyttäjätunnusta ei löydy.') else: # Create a password reset request that is valid for 24 hours reset = PasswordReset(user.id, datetime.now() + timedelta(hours=24)) self.session.add(reset) message = self.create_message(user, reset) from_address = self.request.registry.settings['nuorisovaalitadmin.from_address'].strip() # TODO add sendmail to project to include it here send_mail(from_address, [user.email], message) self.request.session.flash(u'Ohjeet salasanan vaihtamiseen on lähetetty sähköpostissa.') redirect_url = self.request.application_url log.info('Sending password reset instructions to {0}.'.format(user.email)) return HTTPFound(location=redirect_url)
def test_send_mail__create_delivery_on_demand(self): from nuorisovaalitadmin import sendmail sendmail._delivery = None self.failUnless(sendmail._delivery is None) # Call the method to force the delivery to be instansiated. sendmail.send_mail() self.failIf(sendmail._delivery is None)
def test_send_mail__call_delegates_with_params(self): from nuorisovaalitadmin import sendmail self.failUnless(sendmail._delivery is None) sendmail._delivery = sendmail._setup_delivery() self.failIf(sendmail._delivery is None) # Assert that calls to function delegate get passed to the delivery object. sendmail._delivery.send = mock.Mock() sendmail.send_mail(u'foo', u'bar', foo=1, bar=2) sendmail._delivery.send.assert_called_once_with(u'foo', u'bar', foo=1, bar=2)