Florian Bruhin
2e8419db27
Fix lint
2017-09-15 17:24:39 +02:00
Florian Bruhin
c9625cb311
Add more tests for YAML error handling
2017-09-15 17:21:11 +02:00
Florian Bruhin
3f8817cc2d
Use blocking message boxes for config errors
2017-09-15 17:21:11 +02:00
Florian Bruhin
745ef63451
Start implementing autoconfig.yml error handling
2017-09-15 17:21:11 +02:00
Florian Bruhin
fa4ea912c9
Get rid of init_standarddir fixture
...
Instead, always patch in tmpdir's so we don't write to qute_test folders.
2017-09-15 14:30:46 +02:00
Florian Bruhin
e87a782411
Move command-history init to cmdhistory.py
2017-09-15 14:27:15 +02:00
Florian Bruhin
54dfc083f9
Remove default_config fixture
2017-09-15 14:13:27 +02:00
Florian Bruhin
9f955f251a
Reshape comments
2017-09-15 14:11:45 +02:00
Florian Bruhin
e0621c6eda
Fix initializing without a config.py
2017-09-15 14:08:37 +02:00
Florian Bruhin
f406e8d9ca
Remove config.val support for config.py
2017-09-15 14:08:37 +02:00
Florian Bruhin
25baf3b97e
Add more tests for config.py error handling
2017-09-15 13:30:09 +02:00
Florian Bruhin
5efce10c2c
Add initial tests for config.py error handling
2017-09-15 12:07:54 +02:00
Florian Bruhin
4da9b8c495
check_coverage: Truncate long floats
2017-09-15 12:07:54 +02:00
Florian Bruhin
b8fb88f4c2
Improve config error handling
...
- Errors are now combined if possible
- Rich text output in message boxes
- ConfigContainer errors are collected properly
2017-09-15 12:07:54 +02:00
Florian Bruhin
490de32b49
Initial attempt at error handling for config.py
2017-09-14 21:51:29 +02:00
Florian Bruhin
b3734b151b
Handle mutations in config.py correctly
2017-09-14 17:38:33 +02:00
Florian Bruhin
cb806aefa3
Initial config.py support
...
See #2795
2017-09-14 17:38:33 +02:00
Florian Bruhin
6618c3a6e8
Don't use shlex for configtypes.ShellCommand
...
We accidentally did show the command as a list in to_str(). However, after
correcting that to use shlex.escape, we got ugly qutebrowser command lines
when tabbing to the default value, because of how shlex handles double-escaping:
>>> print(shlex.quote("gvim -f '{}'"))
'gvim -f '"'"'{}'"'"''
While in this case, outputting "gvim -f '{}'" would be much more appropriate, it
doesn't look like we can teach shlex.quote to do that.
Instead, we now only accept a list as input for ShellCommand, at the price that
the user needs to do
:set editor.command '["gvim", "-f", "{}"]'
instead of
:set editor.command 'gvim -f {}'
Fixes #2962 .
2017-09-14 14:44:24 +02:00
Florian Bruhin
12260e068a
Don't move cache directory on Windows
2017-09-14 13:35:42 +02:00
Florian Bruhin
0de7b2eb83
Skip standarddir migrations when a basedir is given
2017-09-14 00:37:54 +02:00
Florian Bruhin
3dc67df180
Fix minor standarddir migration issues
2017-09-14 00:37:54 +02:00
Florian Bruhin
1fc9817cd4
Remove support for ambiguous keybindings
2017-09-14 00:37:01 +02:00
Florian Bruhin
9d95dec5ea
Handle standarddir.config() correctly on macOS
...
With auto=False we should get ~/.qutebrowser
2017-09-13 21:32:36 +02:00
Florian Bruhin
70a9a7e5c8
Fix macOS testsuite issues
2017-09-13 21:32:36 +02:00
Florian Bruhin
231193f7a6
Fix standarddir test coverage
2017-09-13 21:32:36 +02:00
Florian Bruhin
2f394d3c9f
Mock out all moving functions for standarddir.init()
2017-09-13 21:32:36 +02:00
Florian Bruhin
50aab7a802
Skip tests needing AppDataLocation on older Qt versions
2017-09-13 21:32:22 +02:00
Florian Bruhin
f7d17c4c55
Allow existing empty dir when migrating files
...
Remove old empty directory if it exists - otherwise, we move old/data to
new/data/data.
2017-09-13 21:32:22 +02:00
Florian Bruhin
e84c1fa82f
Call _init_config in test_fake_mac_auto_config
2017-09-13 21:32:22 +02:00
Florian Bruhin
2a9441dfbf
Make moving data in standarddir more generic
2017-09-13 21:32:22 +02:00
Florian Bruhin
ad2598b475
Add initial support for standarddir.config(auto=True)
...
This doesn't actually migrate things yet.
See #2791 , #383 .
2017-09-13 17:26:56 +02:00
Florian Bruhin
a2f16dbecd
Merge standarddir.system_data() into standarddir.data(system=True)
...
See #2791
2017-09-13 17:26:56 +02:00
Florian Bruhin
2d500d4efa
Also don't create ~/Downloads in standarddir.downloads()
...
This means we need to create it in downloads.py instead.
Fixes #2418
2017-09-13 17:26:56 +02:00
Florian Bruhin
91f5e72f02
Remove download dir from path info
...
This always returns the default Qt path (e.g. ~/Downloads) and also creates it
each time.
See #2418
2017-09-13 17:26:56 +02:00
Florian Bruhin
b185e57406
Remove change_qapp_name in test_standarddir
...
This is already done in conftest.py anyways
2017-09-13 17:26:56 +02:00
Florian Bruhin
56bbd73622
Introduce standarddir caching
...
This makes things a bit more complicated, but is needed to make standarddir (and
thus the config) work without a QApplication.
2017-09-13 17:26:56 +02:00
Florian Bruhin
5d50ec612d
Disable qsettings subdir test on macOS
...
QSettings uses a plist file there.
2017-09-13 10:21:23 +02:00
Florian Bruhin
73ea316501
Use upper-case Monospace in test_progress_affecting_statusbar_height
...
While the test worked again with eb4691adfc
, it
broke again immediately because of 40ee89bddc
.
With that fix in, the lower-case monospace in the set value was immediately
replaced by the full list of fonts again. With an upper-case Monospace, this
won't happen.
Fixes #2825 , for real this time.
2017-09-12 22:51:52 +02:00
Florian Bruhin
b04a233e8d
Adjust :unbind signature to match :bind
2017-09-12 22:51:52 +02:00
Florian Bruhin
eb4691adfc
Fix test_progress_affecting_statusbar_height on Windows
...
Fixes #2825
2017-09-12 22:12:37 +02:00
Florian Bruhin
f6a0500bd3
Merge branch 'master' into new-config
...
This pulls the travis changes to drop the old Qt 5.2 environment.
2017-09-11 18:39:41 +02:00
Florian Bruhin
b4f30f6df2
Move coverage to QtWebEngine environment with PyPI-PyQt
2017-09-11 18:30:23 +02:00
Florian Bruhin
a283a1bb65
Merge branch 'master' into new-config
2017-09-09 10:52:02 +02:00
Ryan Roden-Corrent
63e0574411
Remove stray FIXME:conf
2017-09-07 07:32:46 -04:00
Ryan Roden-Corrent
a5ecb75fcd
Really avoid flakiness in test_models.
...
Ensure the OrderedDict is actually ordered consistently.
2017-09-05 07:52:42 -04:00
Ryan Roden-Corrent
fc02216754
Avoid flakiness in test_models.
...
Ensure config values are ordered consistently by using an OrderedDict.
2017-09-04 16:30:54 -04:00
Ryan Roden-Corrent
0d78c72018
Remove config dependency from get_cmd_completions.
...
In order to really resolve the python3.4 circular import, this should
take the completion info as an argument and not depend on the config
module.
2017-09-04 15:00:35 -04:00
Ryan Roden-Corrent
3bfa01f0d0
Pass CompletionInfo to completion functions.
...
In python3.4, there is a circular dependency between the config module
and configmodel.bind. This is resolved by dependency injection. The
config/keyconfig instances are embedded in a struct passed to every
completion function, so the functions no longer depend on the modules.
This will also enable completion functions to access other previously
inaccessible info, such as the window id.
See #2814 .
2017-09-04 14:01:48 -04:00
Ryan Roden-Corrent
b89caf0458
Use REPLACE when rebuilding completion table.
...
When upgrading from an old table that used different url formatting, two
entries might map to the same key, so we'll need to replace the previous
entry to avoid a primary key conflict.
2017-08-23 21:26:27 -04:00
Ryan Roden-Corrent
d35b47c9d8
Regenerate history completion on version change.
...
Incrementing _USER_VERSION in the source will cause the
HistoryCompletion table to regenerate when users update.
This is currently necessary to support some recent formatting fixes, but
could be incremented again in the future for other changes.
2017-08-21 08:45:40 -04:00