예제 #1
0
 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, '')
예제 #2
0
 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, '')
예제 #3
0
    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')
예제 #4
0
    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')
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
    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)