[pygobject] [gi] Add GSettings tests



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]