def test_send_passwords(self): preferences_link = 'http://localhost/preferences' backups_link = 'http://localhost/backups' user_id = self.db.users.insert({ 'first_name': 'John', 'last_name': 'Doe', 'email': '*****@*****.**', }, safe=True) user = self.db.users.find_one({'_id': user_id}) request = DummyRequest() request.db = self.db mailer = get_mailer(request) self.assertFalse(send_passwords(request, user, preferences_link, backups_link)) self.assertEqual(len(mailer.outbox), 0) # add some passwords self.db.passwords.insert({ 'owner': user_id, 'password': '******', }) self.db.passwords.insert({ 'owner': user_id, 'password': '******', }) request = DummyRequest() request.db = self.db request.date_service = FakeDateService(request) mailer = get_mailer(request) os.environ['YITH_FAKE_DATE'] = '2012-1-10' self.assertTrue(send_passwords(request, user, preferences_link, backups_link)) self.assertEqual(len(mailer.outbox), 1) message = mailer.outbox[0] self.assertEqual(message.subject, "Your Yith Library's passwords") self.assertEqual(message.recipients, ['*****@*****.**']) self.assertTrue(preferences_link in message.body) self.assertTrue(backups_link in message.body) self.assertEqual(len(message.attachments), 1) attachment = message.attachments[0] self.assertEqual(attachment.content_type, 'application/yith') self.assertEqual(attachment.filename, 'yith-library-backup-2012-01-10.yith') del os.environ['YITH_FAKE_DATE']
def send_backups_via_email(): result = setup_simple_command( "send_backups_via_email", "Send a password backup to users.", ) if isinstance(result, int): return result else: settings, closer, env, args = result try: request = env['request'] if len(args) == 0: now = datetime.datetime.utcnow() if now.day == 1: user_iterator = get_all_users(request.db, now) else: user_iterator = tuple() else: user_iterator = get_selected_users(request.db, *args) tx = transaction.begin() public_url_root = settings['public_url_root'] preferences_link = urlparse.urljoin( public_url_root, request.route_path('user_preferences')) backups_link = urlparse.urljoin( public_url_root, request.route_path('backups_index')) for user in user_iterator: if user['email']: sent = send_passwords(request, user, preferences_link, backups_link) if sent: safe_print('Passwords sent to %s' % get_user_display_name(user)) tx.commit() finally: closer()
def test_send_passwords_user_has_some_passwords(self): preferences_link = 'http://localhost/preferences' backups_link = 'http://localhost/backups' user = User(first_name='John', last_name='Doe', email='*****@*****.**') # add some passwords password1 = Password(service='testing1', secret='s3cr3t1', user=user) password2 = Password(service='testing2', secret='s3cr3t2', user=user) with transaction.manager: Session.add(user) Session.add(password1) Session.add(password2) Session.flush() user_id = user.id user = Session.query(User).filter(User.id == user_id).one() request = DummyRequest() mailer = get_mailer(request) with freeze_time('2012-01-10'): self.assertTrue(send_passwords(request, user, preferences_link, backups_link)) self.assertEqual(len(mailer.outbox), 1) message = mailer.outbox[0] self.assertEqual(message.subject, "Your Yith Library's passwords") self.assertEqual(message.recipients, ['*****@*****.**']) self.assertTrue(preferences_link in message.body) self.assertTrue(backups_link in message.body) self.assertEqual(len(message.attachments), 1) attachment = message.attachments[0] self.assertEqual(attachment.content_type, 'application/yith') self.assertEqual(attachment.filename, 'yith-library-backup-2012-01-10.yith')
def send_backups_via_email(): result = setup_simple_command( "send_backups_via_email", "Send a password backup to users.", ) if isinstance(result, int): return result else: settings, closer, env, args = result try: request = env['request'] if len(args) == 0: now = datetime.datetime.utcnow() if now.day == 1: user_iterator = get_all_users(now) else: user_iterator = tuple() else: user_iterator = get_selected_users(*args) tx = transaction.begin() public_url_root = settings['public_url_root'] preferences_link = urlparse.urljoin( public_url_root, request.route_path('user_preferences')) backups_link = urlparse.urljoin(public_url_root, request.route_path('backups_index')) for user in user_iterator: if user.email: sent = send_passwords(request, user, preferences_link, backups_link) if sent: safe_print('Passwords sent to %s' % get_user_display_name(user)) tx.commit() finally: closer()
def test_send_passwords_user_has_no_passwords(self): preferences_link = 'http://localhost/preferences' backups_link = 'http://localhost/backups' user = User(first_name='John', last_name='Doe', email='*****@*****.**') with transaction.manager: Session.add(user) Session.flush() user_id = user.id user = Session.query(User).filter(User.id == user_id).one() request = DummyRequest() mailer = get_mailer(request) self.assertFalse(send_passwords(request, user, preferences_link, backups_link)) self.assertEqual(len(mailer.outbox), 0)
def test_send_passwords_user_has_no_passwords(self): preferences_link = 'http://localhost/preferences' backups_link = 'http://localhost/backups' user = User(first_name='John', last_name='Doe', email='*****@*****.**') with transaction.manager: Session.add(user) Session.flush() user_id = user.id user = Session.query(User).filter(User.id == user_id).one() request = DummyRequest() mailer = get_mailer(request) self.assertFalse( send_passwords(request, user, preferences_link, backups_link)) self.assertEqual(len(mailer.outbox), 0)
def test_send_passwords_user_has_some_passwords(self): preferences_link = 'http://localhost/preferences' backups_link = 'http://localhost/backups' user = User(first_name='John', last_name='Doe', email='*****@*****.**') # add some passwords password1 = Password(service='testing1', secret='s3cr3t1', user=user) password2 = Password(service='testing2', secret='s3cr3t2', user=user) with transaction.manager: Session.add(user) Session.add(password1) Session.add(password2) Session.flush() user_id = user.id user = Session.query(User).filter(User.id == user_id).one() request = DummyRequest() mailer = get_mailer(request) with freeze_time('2012-01-10'): self.assertTrue( send_passwords(request, user, preferences_link, backups_link)) self.assertEqual(len(mailer.outbox), 1) message = mailer.outbox[0] self.assertEqual(message.subject, "Your Yith Library's passwords") self.assertEqual(message.recipients, ['*****@*****.**']) self.assertTrue(preferences_link in message.body) self.assertTrue(backups_link in message.body) self.assertEqual(len(message.attachments), 1) attachment = message.attachments[0] self.assertEqual(attachment.content_type, 'application/yith') self.assertEqual(attachment.filename, 'yith-library-backup-2012-01-10.yith')