From 87703c95fd900c75104b79c9072d70c0e2459016 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Tue, 10 Mar 2015 10:10:56 +0000 Subject: [PATCH] Tweaked fixtree command to make it more testable We can now pass thorough a "delete_orphans" option from the test which simulates a user pressing "y" at the prompt --- .../management/commands/fixtree.py | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/wagtail/wagtailcore/management/commands/fixtree.py b/wagtail/wagtailcore/management/commands/fixtree.py index a3152d3bd..67651e479 100644 --- a/wagtail/wagtailcore/management/commands/fixtree.py +++ b/wagtail/wagtailcore/management/commands/fixtree.py @@ -68,15 +68,19 @@ class Command(BaseCommand): if options.get('interactive', True): yes_or_no = six.moves.input("Delete these pages? [y/N] ") - if yes_or_no.lower().startswith('y'): - deletion_count = len(pages_to_delete) - pages_to_delete.delete() - self.stdout.write( - "%d orphaned page%s deleted." % (deletion_count, "s"[deletion_count==1:]) - ) - any_problems_fixed = True - + delete_orphans = yes_or_no.lower().startswith('y') self.stdout.write('') + else: + # Running tests, check for the "delete_orphans" option + delete_orphans = options.get('delete_orphans', False) + + if delete_orphans: + deletion_count = len(pages_to_delete) + pages_to_delete.delete() + self.stdout.write( + "%d orphaned page%s deleted." % (deletion_count, "s"[deletion_count==1:]) + ) + any_problems_fixed = True if any_problems_fixed: # re-run find_problems to see if any new ones have surfaced