def test_valid(self):
        with app.app_context():

            # create some files
            backup = Backup()
            date_ids = [
                '20110824045557', '20100106120931', '20090728192328',
                '20100112115416'
            ]
            class_names = ['Post', 'User']
            for date_id in date_ids:
                for class_name in class_names:
                    name = backup.get_name(date_id, class_name)
                    backup.create_file(name, '')

            # restart Backup() and assert
            backup = Backup()
            self.assertTrue(backup.valid('20110824045557'))
            self.assertFalse(backup.valid('20110824045--'))

            # clean up to avoid messing up other tests
            for name in backup.files:
                backup.delete_file(name)
            backup = Backup()
            self.assertEqual(len(backup.files), 0)
    def test_valid(self):
        with app.app_context():

            # create some files
            backup = Backup()
            date_ids = [
                '20110824045557',
                '20100106120931',
                '20090728192328',
                '20100112115416'
            ]
            class_names = ['Post', 'User']
            for date_id in date_ids:
                for class_name in class_names:
                    name = backup.get_name(date_id, class_name)
                    backup.create_file(name, '')

            # restart Backup() and assert
            backup = Backup()
            self.assertTrue(backup.valid('20110824045557'))
            self.assertFalse(backup.valid('20110824045--'))

            # clean up to avoid messing up other tests
            for name in backup.files:
                backup.delete_file(name)
            backup = Backup()
            self.assertEqual(len(backup.files), 0)
    def test_autoclean(self):

        with app.app_context():

            # create fake backup dir
            backup = Backup()
            date_ids = [
                '20110824045557', '20100106120931', '20090728192328',
                '20070611074712', '20130729044443', '20070611090332',
                '20090927181422', '20060505063150', '20090608052756',
                '20050413201344', '20111015194547', '20090711221957',
                '20140425202739', '20130808133229', '20120111210958',
                '20120419224811', '20060519170013', '20090111042034',
                '20100112115416'
            ]
            class_names = ['Post', 'User']
            for date_id in date_ids:
                for class_name in class_names:
                    name = backup.get_name(date_id, class_name)
                    backup.create_file(name, '')

            # assert files were created
            backup = Backup()
            expected_count = len(class_names) * len(date_ids)
            self.assertEqual(len(backup.files), expected_count)

            # run auto clean
            os.system('python tests/app_ftp.py alchemydumps autoclean -y')

            # assert some files were deleted
            backup = Backup()
            white_list = [
                '20140425202739', '20130808133229', '20120419224811',
                '20111015194547', '20100112115416', '20090927181422',
                '20070611090332', '20060519170013', '20050413201344'
            ]
            expected_count = len(class_names) * len(white_list)
            self.assertEqual(len(backup.files), expected_count)

            # assert only white listed files exists,
            # and only black listed were deleted
            self.assertEqual(sorted(white_list), sorted(backup.get_ids()))

            # clean up to avoid messing up other tests
            for name in backup.files:
                backup.delete_file(name)
            backup = Backup()
            self.assertEqual(len(backup.files), 0)
    def test_autoclean(self):

        with app.app_context():

            # create fake backup dir
            backup = Backup()
            date_ids = [
                '20110824045557',
                '20100106120931',
                '20090728192328',
                '20070611074712',
                '20130729044443',
                '20070611090332',
                '20090927181422',
                '20060505063150',
                '20090608052756',
                '20050413201344',
                '20111015194547',
                '20090711221957',
                '20140425202739',
                '20130808133229',
                '20120111210958',
                '20120419224811',
                '20060519170013',
                '20090111042034',
                '20100112115416'
            ]
            class_names = ['Post', 'User', 'SomeControl', 'Comments']
            for date_id in date_ids:
                for class_name in class_names:
                    name = backup.get_name(date_id, class_name)
                    backup.create_file(name, '')

            # assert files were created
            backup = Backup()
            expected_count = len(class_names) * len(date_ids)
            self.assertEqual(len(backup.files), expected_count)

            # run auto clean
            os.system('python tests/app_ftp.py alchemydumps autoclean -y')

            # assert some files were deleted
            backup = Backup()
            white_list = [
                '20140425202739',
                '20130808133229',
                '20120419224811',
                '20111015194547',
                '20100112115416',
                '20090927181422',
                '20070611090332',
                '20060519170013',
                '20050413201344'
            ]
            expected_count = len(class_names) * len(white_list)
            self.assertEqual(len(backup.files), expected_count)

            # assert only white listed files exists,
            # and only black listed were deleted
            self.assertEqual(sorted(white_list), sorted(backup.get_ids()))

            # clean up to avoid messing up other tests
            for name in backup.files:
                backup.delete_file(name)
            backup = Backup()
            self.assertEqual(len(backup.files), 0)