def test_remove_empty_dirs_not_empty(self):
     self._media_create(u'sub1/sub2/sub3/notused.txt')
     remove_empty_dirs()
     expect(self._media_exists(u'sub1/sub2/sub3/notused.txt')).to_be_true()
     expect(self._media_exists(u'sub1/sub2/sub3')).to_be_true()
     expect(self._media_exists(u'sub1/sub2')).to_be_true()
     expect(self._media_exists(u'sub1')).to_be_true()
Esempio n. 2
0
 def test_remove_empty_dirs_not_empty(self):
     self._media_create(u'sub1/sub2/sub3/notused.txt')
     remove_empty_dirs()
     expect(self._media_exists(u'sub1/sub2/sub3/notused.txt')).to_be_true()
     expect(self._media_exists(u'sub1/sub2/sub3')).to_be_true()
     expect(self._media_exists(u'sub1/sub2')).to_be_true()
     expect(self._media_exists(u'sub1')).to_be_true()
    def handle(self, *args, **options):

        if 'verbosity' in options:
            self.verbosity = options['verbosity']

        unused_media = get_unused_media(options.get('exclude') or [])

        if not unused_media:
            self.info('Nothing to delete. Exit')
            return

        if options.get('dry_run'):
            self._show_files_to_delete(unused_media)
            self.info('Dry run. Exit.')
            return

        if options.get('interactive'):
            self._show_files_to_delete(unused_media)

            # ask user

            question = 'Are you sure you want to remove {} unused files? (y/N)'.format(len(unused_media))

            if six.moves.input(question).upper() != 'Y':
                self.info('Interrupted by user. Exit.')
                return

        for f in unused_media:
            self.debug('Remove %s' % f)
            os.remove(os.path.join(settings.MEDIA_ROOT, f))

        if options.get('remove_empty_dirs'):
            remove_empty_dirs()

        self.info('Done. Total files removed: {}'.format(len(unused_media)))
Esempio n. 4
0
    def handle(self, *args, **options):

        unused_media = get_unused_media(options.get('exclude') or [])

        if not unused_media:
            self.stdout.write('Nothing to delete. Exit')
            return

        if options.get('dry_run'):
            self._show_files_to_delete(unused_media)
            self.stdout.write('Dry run. Exit.')
            return

        elif options.get('interactive'):

            self._show_files_to_delete(unused_media)

            # ask user

            question = 'Are you sure you want to remove {} unused files? (y/N)'.format(
                len(unused_media))

            if six.moves.input(question).upper() != 'Y':
                self.stdout.write('Interrupted by user. Exit.')
                return

        for f in unused_media:
            self.stdout.write('Remove %s' % f)
            os.remove(os.path.join(settings.MEDIA_ROOT, f))

        if options.get('remove_empty_dirs'):
            remove_empty_dirs()

        self.stdout.write('Done. {} unused files have been removed'.format(
            len(unused_media)))
Esempio n. 5
0
    def handle(self, *args, **options):

        if 'verbosity' in options:
            self.verbosity = options['verbosity']

        if options.get('cleanup_quarantine'):
            self.info('Cleaning up quarantine')
            clean_quarantine()
            return

        if options.get('show_possible_models'):
            self.info("Possible models are:")
            self._print_file_models()
            return

        if options.get('include_models'):
            all_clear = verify_user_file_models(options.get('include_models'))
            if not all_clear:
                self.info(
                    "Stopped processing. Incorrect input of the --include-models argument. "
                    "Fix the errors and run the task again.")
                self.info("Possible options for --include-models are: ")
                self._print_file_models()
                return

        unused_media = get_unused_media(
            options.get('exclude') or [],
            options.get('include_models') or [])

        if not unused_media:
            self.info('Nothing to do. Exit')
            return

        if options.get('dry_run'):
            self._show_files_to_delete(unused_media)
            self.info('Dry run. Exit.')
            return

        if options.get('interactive'):
            self._show_files_to_delete(unused_media)

            # ask user
            question = 'Are you sure you want to place {} unused files in quarantine? (y/N)'.format(
                len(unused_media))

            if six.moves.input(question).upper() != 'Y':
                self.info('Interrupted by user. Exit.')
                return

        self.debug('Moving files to quarantine')
        move_media_to_quarantine(unused_media)
        for f in unused_media:
            self.debug('Placed %s to quarantine' % f)

        if options.get('remove_empty_dirs'):
            remove_empty_dirs()

        self.info('Done. Total files placed in quarantine: {}'.format(
            len(unused_media)))
Esempio n. 6
0
 def test_remove_empty_dirs(self):
     self._media_create(u'sub1/sub2/sub3/notused.txt')
     remove_unused_media()
     remove_empty_dirs()
     expect(self._media_exists(u'sub1/sub2/sub3/notused.txt')).to_be_false()
     expect(self._media_exists(u'sub1/sub2/sub3')).to_be_false()
     expect(self._media_exists(u'sub1/sub2')).to_be_false()
     expect(self._media_exists(u'sub1')).to_be_false()
 def test_remove_empty_dirs(self):
     self._media_create(u'sub1/sub2/sub3/notused.txt')
     remove_unused_media()
     remove_empty_dirs()
     expect(self._media_exists(u'sub1/sub2/sub3/notused.txt')).to_be_false()
     expect(self._media_exists(u'sub1/sub2/sub3')).to_be_false()
     expect(self._media_exists(u'sub1/sub2')).to_be_false()
     expect(self._media_exists(u'sub1')).to_be_false()
Esempio n. 8
0
    def handle(self, *args, **options):

        if 'verbosity' in options:
            self.verbosity = options['verbosity']

        unused_media = get_unused_media(
            exclude=options.get('exclude'),
            minimum_file_age=options.get('minimum_file_age'),
        )

        if not unused_media:
            self.info('Nothing to delete. Exit')
            return

        if options.get('dry_run'):
            self._show_files_to_delete(unused_media)
            self.info('Dry run. Exit.')
            return

        if options.get('interactive'):
            self._show_files_to_delete(unused_media)

            # ask user

            question = 'Are you sure you want to remove {} unused files? (y/N)'.format(
                len(unused_media))

            if six.moves.input(question).upper() != 'Y':
                self.info('Interrupted by user. Exit.')
                return

        for f in unused_media:
            self.debug('Remove %s' % f)
            os.remove(os.path.join(settings.MEDIA_ROOT, f))

        if options.get('remove_empty_dirs'):
            remove_empty_dirs()

        self.info('Done. Total files removed: {}'.format(len(unused_media)))