diff --git a/qutebrowser/config/configcommands.py b/qutebrowser/config/configcommands.py index f659b14d7..7d9adb475 100644 --- a/qutebrowser/config/configcommands.py +++ b/qutebrowser/config/configcommands.py @@ -289,4 +289,7 @@ class ConfigCommands: writer = configfiles.ConfigPyWriter(options, bindings, commented=commented) - writer.write(filename) + try: + writer.write(filename) + except OSError as e: + raise cmdexc.CommandError(str(e)) diff --git a/tests/unit/config/test_configcommands.py b/tests/unit/config/test_configcommands.py index 40a69668a..c0142b09f 100644 --- a/tests/unit/config/test_configcommands.py +++ b/tests/unit/config/test_configcommands.py @@ -413,6 +413,11 @@ class TestWritePy: lines = confpy.read_text('utf-8').splitlines() assert '# Autogenerated config.py' in lines + def test_oserror(self, commands, tmpdir): + """Test writing to a directory which does not exist.""" + with pytest.raises(cmdexc.CommandError): + commands.config_write_py(str(tmpdir / 'foo' / 'config.py')) + class TestBind: