def test_empty_database(self): # Call send backups with a config file but an empty database sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = send_backups_via_email() self.assertEqual(result, None) stdout = sys.stdout.getvalue() self.assertEqual(stdout, '')
def test_no_arguments(self): # Replace sys argv and stdout sys.argv = [] sys.stdout = StringIO() # Call send backups with no arguments result = send_backups_via_email() self.assertEqual(result, 2) stdout = sys.stdout.getvalue() self.assertEqual(stdout, 'You must provide at least one argument\n')
def test_send_specific_user(self): with transaction.manager: user1 = User(first_name='John1', last_name='Doe', email='', email_verified=False, send_passwords_periodically=False) Session.add(user1) self.add_passwords(user1, 10) user2 = User(first_name='John2', last_name='Doe', email='*****@*****.**', email_verified=True, send_passwords_periodically=False) Session.add(user2) self.add_passwords(user2, 10) user3 = User(first_name='John3', last_name='Doe', email='*****@*****.**', email_verified=True, send_passwords_periodically=True) Session.add(user3) self.add_passwords(user3, 10) user4 = User(first_name='John4', last_name='Doe', email='*****@*****.**', email_verified=True, send_passwords_periodically=True) Session.add(user4) self.add_passwords(user4, 10) sys.argv = ['notused', self.conf_file_path, '*****@*****.**'] sys.stdout = StringIO() result = send_backups_via_email() self.assertEqual(result, None) stdout = sys.stdout.getvalue() expected_output = """Passwords sent to John3 Doe <*****@*****.**> """ self.assertEqual(stdout, expected_output)
def test_several_users_first_of_month(self): d = datetime.datetime # Add some users with transaction.manager: user1 = User(first_name='John1', last_name='Doe', creation=d(2012, 12, 12, 9, 10, 0), email='*****@*****.**', email_verified=False, send_passwords_periodically=False) Session.add(user1) self.add_passwords(user1, 10) user2 = User(first_name='John2', last_name='Doe', creation=d(2013, 1, 2, 13, 10, 0), email='*****@*****.**', email_verified=True, send_passwords_periodically=False) Session.add(user2) self.add_passwords(user2, 10) user3 = User(first_name='John3', last_name='Doe', creation=d(2014, 6, 20, 10, 58, 10), email='*****@*****.**', email_verified=True, send_passwords_periodically=True) Session.add(user3) self.add_passwords(user3, 10) sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = send_backups_via_email() self.assertEqual(result, None) stdout = sys.stdout.getvalue() expected_output = """Passwords sent to John3 Doe <*****@*****.**> """ self.assertEqual(stdout, expected_output)
def test_several_users_first_of_month(self): d = datetime.datetime # Add some users self.add_passwords(self.db.users.insert({ 'first_name': 'John1', 'last_name': 'Doe', 'date_joined': d(2012, 12, 12, 9, 10, 0), 'email': '*****@*****.**', 'email_verified': False, 'send_passwords_periodically': False, }), 10) self.add_passwords(self.db.users.insert({ 'first_name': 'John2', 'last_name': 'Doe', 'date_joined': d(2013, 1, 2, 13, 10, 0), 'email': '*****@*****.**', 'email_verified': True, 'send_passwords_periodically': True, }), 10) self.add_passwords(self.db.users.insert({ 'first_name': 'John3', 'last_name': 'Doe', 'date_joined': d(2014, 6, 20, 10, 58, 10), 'email': '*****@*****.**', 'email_verified': True, 'send_passwords_periodically': True, }), 10) sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = send_backups_via_email() self.assertEqual(result, None) stdout = sys.stdout.getvalue() expected_output = """Passwords sent to John3 Doe <*****@*****.**> """ self.assertEqual(stdout, expected_output)
def test_send_specific_user(self): self.add_passwords(self.db.users.insert({ 'first_name': 'John1', 'last_name': 'Doe', 'email': '', 'email_verified': False, 'send_passwords_periodically': False, }), 10) self.add_passwords(self.db.users.insert({ 'first_name': 'John2', 'last_name': 'Doe', 'email': '*****@*****.**', 'email_verified': True, 'send_passwords_periodically': False, }), 10) self.add_passwords(self.db.users.insert({ 'first_name': 'John3', 'last_name': 'Doe', 'email': '*****@*****.**', 'email_verified': True, 'send_passwords_periodically': True, }), 10) self.add_passwords(self.db.users.insert({ 'first_name': 'John4', 'last_name': 'Doe', 'email': '*****@*****.**', 'email_verified': True, 'send_passwords_periodically': True, }), 10) sys.argv = ['notused', self.conf_file_path, '*****@*****.**'] sys.stdout = StringIO() result = send_backups_via_email() self.assertEqual(result, None) stdout = sys.stdout.getvalue() expected_output = """Passwords sent to John3 Doe <*****@*****.**> """ self.assertEqual(stdout, expected_output)
def test_several_users(self): date_joined = datetime.datetime(2012, 12, 12, 12, 12) # Add some users self.add_passwords(self.db.users.insert({ 'first_name': 'John1', 'last_name': 'Doe', 'date_joined': date_joined, 'email': '', 'email_verified': False, 'send_passwords_periodically': False, }), 10) i = 1 while True: user_id = self.add_passwords(self.db.users.insert({ 'first_name': 'John%d' % i, 'last_name': 'Doe', 'date_joined': date_joined, 'email': '*****@*****.**' % i, 'email_verified': True, 'send_passwords_periodically': True, }), 10) day = get_day_to_send({'_id': user_id}, 28) if day == 10: break i += 1 sys.argv = ['notused', self.conf_file_path] sys.stdout = StringIO() result = send_backups_via_email() self.assertEqual(result, None) stdout = sys.stdout.getvalue() expected_output = """Passwords sent to John%d Doe <*****@*****.**> """ % (i, i) self.assertEqual(stdout, expected_output)