Also don't create ~/Downloads in standarddir.downloads()

This means we need to create it in downloads.py instead.

Fixes #2418
This commit is contained in:
Florian Bruhin 2017-09-13 12:56:36 +02:00
parent 91f5e72f02
commit 2d500d4efa
3 changed files with 23 additions and 4 deletions

View File

@ -73,11 +73,18 @@ def download_dir():
remember_dir = config.val.downloads.location.remember
if remember_dir and last_used_directory is not None:
return last_used_directory
ddir = last_used_directory
elif directory is None:
return standarddir.download()
ddir = standarddir.download()
else:
return directory
ddir = directory
try:
os.makedirs(ddir)
except FileExistsError:
pass
return ddir
def immediate_download_path(prompt_download_directory=None):

View File

@ -118,12 +118,12 @@ def _init_download(args):
"""Initialize the location for downloads.
Note this is only the default directory as found by Qt.
Therefore, we also don't create it.
"""
typ = QStandardPaths.DownloadLocation
overridden, path = _from_args(typ, args)
if not overridden:
path = _writable_location(typ)
_create(path)
_locations[Location.download] = path

View File

@ -418,3 +418,15 @@ def test_init(mocker, tmpdir, with_args):
assert standarddir._locations != {}
if with_args:
assert m.called
@pytest.mark.linux
def test_downloads_dir_not_crated(monkeypatch, tmpdir):
"""Make sure ~/Downloads is not created."""
download_dir = tmpdir / 'Downloads'
monkeypatch.setenv('HOME', str(tmpdir))
# Make sure xdg-user-dirs.dirs is not picked up
monkeypatch.delenv('XDG_CONFIG_HOME', raising=False)
standarddir._init_dirs()
assert standarddir.download() == str(download_dir)
assert not download_dir.exists()