[pygobject] [gi] Add GSettings tests
- From: Martin Pitt <martinpitt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pygobject] [gi] Add GSettings tests
- Date: Fri, 28 Jan 2011 16:19:51 +0000 (UTC)
commit 69207910209ebfe450df616aeb8fa4cc2e7eccf3
Author: Martin Pitt <martin pitt ubuntu com>
Date: Fri Jan 28 17:14:19 2011 +0100
[gi] Add GSettings tests
Ryan Lortie proposed an override for more convenient GSettings access, so let's
first make sure that the canonical GLib API works.
tests/Makefile.am | 7 +++++--
tests/org.gnome.test.gschema.xml | 16 ++++++++++++++++
tests/test_overrides.py | 31 +++++++++++++++++++++++++++++++
3 files changed, 52 insertions(+), 2 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3d6fcfb..01d29c0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -40,7 +40,10 @@ GIMarshallingTests-1.0.gir: libgimarshallingtests.la Makefile
GIMarshallingTests-1.0.typelib: GIMarshallingTests-1.0.gir Makefile
$(AM_V_GEN) g-ir-compiler $< -o $@
-CLEANFILES += Regress-1.0.gir Regress-1.0.typelib GIMarshallingTests-1.0.gir GIMarshallingTests-1.0.typelib
+gschemas.compiled: org.gnome.test.gschema.xml
+ glib-compile-schemas --targetdir=. --schema-file=$<
+
+CLEANFILES += Regress-1.0.gir Regress-1.0.typelib GIMarshallingTests-1.0.gir GIMarshallingTests-1.0.typelib gschemas.compiled
endif
noinst_LTLIBRARIES += testhelper.la
@@ -99,7 +102,7 @@ clean-local:
rm -f $(LTLIBRARIES:.la=.so) file.txt~
-check-local: $(LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib
+check-local: $(LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled
TEST_FILES="$(TEST_FILES)" \
PYTHONPATH=$(top_builddir):$(top_builddir)/tests:$${PYTHONPATH:+:$$PYTHONPATH} \
LD_LIBRARY_PATH=$(builddir)/.libs:$$LD_LIBRARY_PATH \
diff --git a/tests/org.gnome.test.gschema.xml b/tests/org.gnome.test.gschema.xml
new file mode 100644
index 0000000..0002e85
--- /dev/null
+++ b/tests/org.gnome.test.gschema.xml
@@ -0,0 +1,16 @@
+<schemalist>
+ <schema id="org.gnome.test" path="/tests/">
+ <key name="test-boolean" type="b">
+ <default>true</default>
+ </key>
+ <key name="test-string" type="s">
+ <default>"Hello"</default>
+ </key>
+ <key name="test-tuple" type="(ii)">
+ <default>(1,2)</default>
+ </key>
+ <key name="test-array" type="ai">
+ <default>[1,2]</default>
+ </key>
+ </schema>
+</schemalist>
diff --git a/tests/test_overrides.py b/tests/test_overrides.py
index f0edbc4..aaf9f1d 100644
--- a/tests/test_overrides.py
+++ b/tests/test_overrides.py
@@ -4,6 +4,7 @@
import unittest
import sys
+import os
sys.path.insert(0, "../")
from compathelper import _long, _unicode
@@ -1182,6 +1183,10 @@ class TestGtk(unittest.TestCase):
self.assertEquals(sw.get_vadjustment(), sb.get_adjustment())
class TestGio(unittest.TestCase):
+ def setUp(self):
+ os.environ['GSETTINGS_BACKEND'] = 'memory'
+ os.environ['GSETTINGS_SCHEMA_DIR'] = os.path.dirname(__file__)
+
def test_file_enumerator(self):
self.assertEquals(Gio.FileEnumerator, overrides.Gio.FileEnumerator)
f = Gio.file_new_for_path("./")
@@ -1200,3 +1205,29 @@ class TestGio(unittest.TestCase):
self.assertEquals(iter_info, next_info)
+ def test_gsettings(self):
+ settings = Gio.Settings.new('org.gnome.test')
+
+ self.assert_('test-array' in settings.list_keys())
+
+ # get various types
+ v = settings.get_value('test-boolean')
+ self.assertEqual(v.get_boolean(), True)
+ self.assertEqual(settings.get_boolean('test-boolean'), True)
+
+ v = settings.get_value('test-string')
+ self.assertEqual(v.get_string(), 'Hello')
+ self.assertEqual(settings.get_string('test-string'), 'Hello')
+
+ v = settings.get_value('test-array')
+ self.assertEqual(v.unpack(), [1, 2])
+
+ v = settings.get_value('test-tuple')
+ self.assertEqual(v.unpack(), (1, 2))
+
+ # set a value
+ settings.set_string('test-string', 'World')
+ self.assertEqual(settings.get_string('test-string'), 'World')
+
+ settings.set_value('test-string', GLib.Variant('s', 'Goodbye'))
+ self.assertEqual(settings.get_string('test-string'), 'Goodbye')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]