diff options
author | Daniel Playfair Cal <daniel.playfair.cal@gmail.com> | 2019-02-12 22:15:56 +0000 |
---|---|---|
committer | Daniel Playfair Cal <daniel.playfair.cal@gmail.com> | 2019-02-12 22:15:56 +0000 |
commit | 0740fd9c28f5cb2cfab634ebdd3c6f4893e2d296 (patch) | |
tree | 1444a893b63574b768194dce7b5a9b7cc37cc05c /tests | |
parent | f0bb97ded21f8d2fb50065e7cfefade66a70333e (diff) | |
parent | c963f9eec8d72d6e17099d456330cd988294c0af (diff) | |
download | dconf-0740fd9c28f5cb2cfab634ebdd3c6f4893e2d296.tar.gz |
Merge branch 'ignore-non-writable' into 'master'
bin: Add an option to ignore changes to locked keys during load
Closes #1
See merge request GNOME/dconf!43
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test-dconf.py | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/tests/test-dconf.py b/tests/test-dconf.py index 51e522b..cf9bb14 100755 --- a/tests/test-dconf.py +++ b/tests/test-dconf.py @@ -62,8 +62,8 @@ def dconf(*args, **kwargs): return subprocess.run(argv, **kwargs) -def dconf_read(key): - return dconf('read', key).stdout.rstrip('\n') +def dconf_read(key, **kwargs): + return dconf('read', key, **kwargs).stdout.rstrip('\n') def dconf_write(key, value): @@ -684,6 +684,7 @@ class DBusTest(unittest.TestCase): - Update configures locks based on files found in "locks" subdirectory. - Locks can be listed with list-locks command. - Locks are enforced during write. + - Load can ignore changes to locked keys using -f option. """ db = os.path.join(self.temporary_dir.name, 'db') @@ -714,8 +715,8 @@ class DBusTest(unittest.TestCase): host='172.16.0.1' enabled=true - [org/gnome/desktop/background] - picture-uri='file:///usr/local/rupert-corp/company-wallpaper.jpeg' + [org/gnome/desktop] + background='company-wallpaper.jpeg' ''')) # Lock proxy settings. @@ -746,9 +747,8 @@ class DBusTest(unittest.TestCase): dconf_locks('/org/gnome/', env=env)) # Changing unlocked defaults is fine. - dconf('write', '/org/gnome/desktop/background/picture-uri', - '"file:///usr/share/backgrounds/gnome/ColdWarm.jpg"', - env=env) + dconf('write', '/org/gnome/desktop/background', + '"ColdWarm.jpg"', env=env) # It is an error to change locked keys. with self.assertRaises(subprocess.CalledProcessError) as cm: @@ -756,6 +756,26 @@ class DBusTest(unittest.TestCase): env=env, stderr=subprocess.PIPE) self.assertRegex(cm.exception.stderr, 'non-writable keys') + keyfile = dedent('''\ + [system/proxy/http] + enabled=false + [org/gnome/desktop] + background='Winter.png' + ''') + + # Load fails to apply changes if some key is locked ... + with self.assertRaises(subprocess.CalledProcessError) as cm: + dconf('load', '/', input=keyfile, env=env, stderr=subprocess.PIPE) + self.assertRegex(cm.exception.stderr, 'non-writable keys') + self.assertEqual('true', dconf_read('/system/proxy/http/enabled', env=env)) + self.assertEqual("'ColdWarm.jpg'", dconf_read('/org/gnome/desktop/background', env=env)) + + # ..., unless invoked with -f option, then it changes unlocked keys. + stderr = dconf('load', '-f', '/', input=keyfile, env=env, stderr=subprocess.PIPE).stderr + self.assertRegex(stderr, 'ignored non-writable key') + self.assertEqual('true', dconf_read('/system/proxy/http/enabled', env=env)) + self.assertEqual("'Winter.png'", dconf_read('/org/gnome/desktop/background', env=env)) + def test_dconf_blame(self): """Blame returns recorded information about write operations. |