From f7d17c4c55fe692416518de51bbdc435f716bba0 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 13 Sep 2017 17:38:56 +0200 Subject: [PATCH] Allow existing empty dir when migrating files Remove old empty directory if it exists - otherwise, we move old/data to new/data/data. --- qutebrowser/utils/standarddir.py | 8 +++++--- tests/unit/utils/test_standarddir.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/qutebrowser/utils/standarddir.py b/qutebrowser/utils/standarddir.py index c58eac77c..04e3e342f 100644 --- a/qutebrowser/utils/standarddir.py +++ b/qutebrowser/utils/standarddir.py @@ -359,9 +359,11 @@ def _move_data(old, new): log.init.debug("Migrating data from {} to {}".format(old, new)) if os.path.exists(new): - message.error("Failed to move data from {} as {} already exists!" - .format(old, new)) - return False + if os.listdir(new): + message.error("Failed to move data from {} as {} is non-empty!" + .format(old, new)) + return False + os.rmdir(new) try: shutil.move(old, new) diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py index c3a4c2e5c..b7c23071e 100644 --- a/tests/unit/utils/test_standarddir.py +++ b/tests/unit/utils/test_standarddir.py @@ -389,7 +389,7 @@ class TestDataMigrations: standarddir._move_webengine_data() record = caplog.records[-1] - expected = "Failed to move data from {} as {} already exists!".format( + expected = "Failed to move data from {} as {} is non-empty!".format( old_path, new_path) assert record.message == expected