qutebrowser profile manager
at main 2.5 kB view raw
1from pathlib import Path 2 3from qbpm.config import ( 4 DEFAULT_CONFIG_FILE, 5 Config, 6 find_config, 7 find_qutebrowser_config_dir, 8) 9 10from . import no_homedir_fixture # noqa: F401 11 12 13def test_no_config(): 14 assert find_config(None) == Config.load(DEFAULT_CONFIG_FILE) 15 16 17def test_empty_config(tmp_path: Path): 18 file = tmp_path / "config.toml" 19 file.touch() 20 assert find_config(file) == Config() 21 22 23def test_default_config_location(tmp_path: Path): 24 (tmp_path / "qbpm").mkdir() 25 (tmp_path / "qbpm" / "config.toml").touch() 26 assert find_config(None) == Config() 27 28 29def test_minimal_config(tmp_path: Path): 30 file = tmp_path / "config.toml" 31 file.write_text("""config_py_template = 'template'""") 32 assert find_config(file) == Config(config_py_template="template") 33 34 35def test_full_config(tmp_path: Path): 36 file = tmp_path / "config.toml" 37 file.write_text(""" 38config_py_template = \""" 39config.load_autoconfig() 40\""" 41symlink_autoconfig = true 42qutebrowser_config_directory = "~/.config/qutebrowser" 43profile_directory = "profile" 44generate_desktop_file = false 45desktop_file_directory = "desktop" 46menu = "~/bin/my-dmenu" 47menu_prompt = "qbpm" 48 """) 49 assert find_config(file) == Config( 50 config_py_template="config.load_autoconfig()\n", 51 symlink_autoconfig=True, 52 qutebrowser_config_directory=Path("~/.config/qutebrowser").expanduser(), 53 profile_directory=Path("profile"), 54 desktop_file_directory=Path("desktop"), 55 generate_desktop_file=False, 56 menu="~/bin/my-dmenu", 57 menu_prompt="qbpm", 58 ) 59 60 61def test_find_qb_config(tmp_path: Path): 62 qb_dir = tmp_path / "qb" 63 qb_conf_dir = qb_dir / "config" 64 qb_conf_dir.mkdir(parents=True) 65 (qb_conf_dir / "config.py").touch() 66 assert find_qutebrowser_config_dir(qb_dir) == qb_conf_dir 67 assert find_qutebrowser_config_dir(qb_dir / "config") == qb_conf_dir 68 69 70def test_find_autoconfig(tmp_path: Path): 71 qb_dir = tmp_path / "qb" 72 qb_conf_dir = qb_dir / "config" 73 qb_conf_dir.mkdir(parents=True) 74 (qb_conf_dir / "autoconfig.yml").touch() 75 assert find_qutebrowser_config_dir(qb_dir, autoconfig=True) == qb_conf_dir 76 77 78def test_find_qb_config_default(tmp_path: Path): 79 (tmp_path / "config.py").touch() 80 assert find_qutebrowser_config_dir(None) == tmp_path 81 82 83def test_find_qutebrowser_none(tmp_path: Path): 84 assert find_qutebrowser_config_dir(None) is None 85 assert find_qutebrowser_config_dir(tmp_path / "config") is None