diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | glib/glibmodule.c | 66 | ||||
-rw-r--r-- | gobject/__init__.py | 10 | ||||
-rw-r--r-- | gobject/gobjectmodule.c | 85 | ||||
-rw-r--r-- | tests/test_gio.py | 30 | ||||
-rw-r--r-- | tests/test_mainloop.py | 6 | ||||
-rw-r--r-- | tests/test_source.py | 22 | ||||
-rw-r--r-- | tests/test_subprocess.py | 10 | ||||
-rw-r--r-- | tests/test_thread.py | 9 |
9 files changed, 151 insertions, 100 deletions
@@ -1,5 +1,18 @@ 2008-07-26 Johan Dahlin <johan@gnome.org> + * glib/glibmodule.c (pyglib_register_constants), (init_glib): + * gobject/__init__.py: + * gobject/gobjectmodule.c (init_gobject): + Move over glib constants to gobject + * tests/test_gio.py: + * tests/test_mainloop.py: + * tests/test_source.py: + * tests/test_subprocess.py: + * tests/test_thread.py: + Update tests to refer to glib when appropriate + +2008-07-26 Johan Dahlin <johan@gnome.org> + * README: * configure.ac: Bump required glib version to 2.10 diff --git a/glib/glibmodule.c b/glib/glibmodule.c index 0abf505..b4a5b09 100644 --- a/glib/glibmodule.c +++ b/glib/glibmodule.c @@ -618,14 +618,78 @@ pyglib_register_version_tuples(PyObject *d) Py_DECREF(o); } +static void +pyglib_register_constants(PyObject *m) +{ + + PyModule_AddIntConstant(m, "SPAWN_LEAVE_DESCRIPTORS_OPEN", + G_SPAWN_LEAVE_DESCRIPTORS_OPEN); + PyModule_AddIntConstant(m, "SPAWN_DO_NOT_REAP_CHILD", + G_SPAWN_DO_NOT_REAP_CHILD); + PyModule_AddIntConstant(m, "SPAWN_SEARCH_PATH", + G_SPAWN_SEARCH_PATH); + PyModule_AddIntConstant(m, "SPAWN_STDOUT_TO_DEV_NULL", + G_SPAWN_STDOUT_TO_DEV_NULL); + PyModule_AddIntConstant(m, "SPAWN_STDERR_TO_DEV_NULL", + G_SPAWN_STDERR_TO_DEV_NULL); + PyModule_AddIntConstant(m, "SPAWN_CHILD_INHERITS_STDIN", + G_SPAWN_CHILD_INHERITS_STDIN); + PyModule_AddIntConstant(m, "SPAWN_FILE_AND_ARGV_ZERO", + G_SPAWN_FILE_AND_ARGV_ZERO); + + PyModule_AddIntConstant(m, "PRIORITY_HIGH", + G_PRIORITY_HIGH); + PyModule_AddIntConstant(m, "PRIORITY_DEFAULT", + G_PRIORITY_DEFAULT); + PyModule_AddIntConstant(m, "PRIORITY_HIGH_IDLE", + G_PRIORITY_HIGH_IDLE); + PyModule_AddIntConstant(m, "PRIORITY_DEFAULT_IDLE", + G_PRIORITY_DEFAULT_IDLE); + PyModule_AddIntConstant(m, "PRIORITY_LOW", + G_PRIORITY_LOW); + + PyModule_AddIntConstant(m, "IO_IN", G_IO_IN); + PyModule_AddIntConstant(m, "IO_OUT", G_IO_OUT); + PyModule_AddIntConstant(m, "IO_PRI", G_IO_PRI); + PyModule_AddIntConstant(m, "IO_ERR", G_IO_ERR); + PyModule_AddIntConstant(m, "IO_HUP", G_IO_HUP); + PyModule_AddIntConstant(m, "IO_NVAL", G_IO_NVAL); + + PyModule_AddIntConstant(m, "IO_STATUS_ERROR", + G_IO_STATUS_ERROR); + PyModule_AddIntConstant(m, "IO_STATUS_NORMAL", + G_IO_STATUS_NORMAL); + PyModule_AddIntConstant(m, "IO_STATUS_EOF", + G_IO_STATUS_EOF); + PyModule_AddIntConstant(m, "IO_STATUS_AGAIN", + G_IO_STATUS_AGAIN); + PyModule_AddIntConstant(m, "IO_FLAG_APPEND", + G_IO_FLAG_APPEND); + PyModule_AddIntConstant(m, "IO_FLAG_NONBLOCK", + G_IO_FLAG_NONBLOCK); + PyModule_AddIntConstant(m, "IO_FLAG_IS_READABLE", + G_IO_FLAG_IS_READABLE); + PyModule_AddIntConstant(m, "IO_FLAG_IS_WRITEABLE", + G_IO_FLAG_IS_WRITEABLE); + PyModule_AddIntConstant(m, "IO_FLAG_IS_SEEKABLE", + G_IO_FLAG_IS_SEEKABLE); + PyModule_AddIntConstant(m, "IO_FLAG_MASK", + G_IO_FLAG_MASK); + PyModule_AddIntConstant(m, "IO_FLAG_GET_MASK", + G_IO_FLAG_GET_MASK); + PyModule_AddIntConstant(m, "IO_FLAG_SET_MASK", + G_IO_FLAG_SET_MASK); + +} DL_EXPORT(void) init_glib(void) { PyObject *m, *d; m = Py_InitModule("glib._glib", pyglib_functions); - d = PyModule_GetDict(m); + pyglib_register_constants(m); + d = PyModule_GetDict(m); pyglib_register_api(d); pyglib_register_error(d); pyglib_register_version_tuples(d); diff --git a/gobject/__init__.py b/gobject/__init__.py index eba3eaf..04b9a31 100644 --- a/gobject/__init__.py +++ b/gobject/__init__.py @@ -34,6 +34,15 @@ from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \ get_prgname, set_prgname, main_depth, Pid, GError, glib_version, \ MainLoop, MainContext, main_context_default, IOChannel, Source, Idle, \ Timeout, PollFD +from glib import SPAWN_LEAVE_DESCRIPTORS_OPEN, SPAWN_DO_NOT_REAP_CHILD, \ + SPAWN_SEARCH_PATH, SPAWN_STDOUT_TO_DEV_NULL, SPAWN_STDERR_TO_DEV_NULL, \ + SPAWN_CHILD_INHERITS_STDIN, SPAWN_FILE_AND_ARGV_ZERO, PRIORITY_HIGH, \ + PRIORITY_DEFAULT, PRIORITY_HIGH_IDLE, PRIORITY_DEFAULT_IDLE, \ + PRIORITY_LOW, IO_IN, IO_OUT, IO_PRI, IO_ERR, IO_HUP, IO_NVAL, \ + IO_STATUS_ERROR, IO_STATUS_NORMAL, IO_STATUS_EOF, IO_STATUS_AGAIN, \ + IO_FLAG_APPEND, IO_FLAG_NONBLOCK, IO_FLAG_IS_READABLE, \ + IO_FLAG_IS_WRITEABLE, IO_FLAG_IS_SEEKABLE, IO_FLAG_MASK, \ + IO_FLAG_GET_MASK, IO_FLAG_SET_MASK from gobject.constants import * from _gobject import * @@ -41,6 +50,7 @@ _PyGObject_API = _gobject._PyGObject_API from propertyhelper import property + class GObjectMeta(type): "Metaclass for automatically registering GObject classes" def __init__(cls, name, bases, dict_): diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index a6da00f..81b8892 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -2795,67 +2795,30 @@ init_gobject(void) PyModule_AddIntConstant(m, "PARAM_LAX_VALIDATION", G_PARAM_LAX_VALIDATION); PyModule_AddIntConstant(m, "PARAM_READWRITE", G_PARAM_READWRITE); - PyModule_AddIntConstant(m, "PRIORITY_HIGH", G_PRIORITY_HIGH); - PyModule_AddIntConstant(m, "PRIORITY_DEFAULT", G_PRIORITY_DEFAULT); - PyModule_AddIntConstant(m, "PRIORITY_HIGH_IDLE", G_PRIORITY_HIGH_IDLE); - PyModule_AddIntConstant(m, "PRIORITY_DEFAULT_IDLE",G_PRIORITY_DEFAULT_IDLE); - PyModule_AddIntConstant(m, "PRIORITY_LOW", G_PRIORITY_LOW); - - PyModule_AddIntConstant(m, "IO_IN", G_IO_IN); - PyModule_AddIntConstant(m, "IO_OUT", G_IO_OUT); - PyModule_AddIntConstant(m, "IO_PRI", G_IO_PRI); - PyModule_AddIntConstant(m, "IO_ERR", G_IO_ERR); - PyModule_AddIntConstant(m, "IO_HUP", G_IO_HUP); - PyModule_AddIntConstant(m, "IO_NVAL", G_IO_NVAL); - -#define addint(x) PyModule_AddIntConstant(m, #x, G_##x) - - addint(IO_STATUS_ERROR); - addint(IO_STATUS_NORMAL); - addint(IO_STATUS_EOF); - addint(IO_STATUS_AGAIN); - - addint(IO_FLAG_APPEND); - addint(IO_FLAG_NONBLOCK); - addint(IO_FLAG_IS_READABLE); - addint(IO_FLAG_IS_WRITEABLE); - addint(IO_FLAG_IS_SEEKABLE); - addint(IO_FLAG_MASK); - addint(IO_FLAG_GET_MASK); - addint(IO_FLAG_SET_MASK); - - addint(OPTION_FLAG_HIDDEN); - addint(OPTION_FLAG_IN_MAIN); - addint(OPTION_FLAG_REVERSE); - addint(OPTION_FLAG_NO_ARG); - addint(OPTION_FLAG_FILENAME); - addint(OPTION_FLAG_OPTIONAL_ARG); - addint(OPTION_FLAG_NOALIAS); - - addint(OPTION_ERROR_UNKNOWN_OPTION); - addint(OPTION_ERROR_BAD_VALUE); - addint(OPTION_ERROR_FAILED); - -#undef addint - - PyModule_AddStringConstant(m, "OPTION_REMAINING", G_OPTION_REMAINING); - - PyModule_AddStringConstant(m, "OPTION_ERROR", (char*) g_quark_to_string(G_OPTION_ERROR)); - - PyModule_AddIntConstant(m, "SPAWN_LEAVE_DESCRIPTORS_OPEN", - G_SPAWN_LEAVE_DESCRIPTORS_OPEN); - PyModule_AddIntConstant(m, "SPAWN_DO_NOT_REAP_CHILD", - G_SPAWN_DO_NOT_REAP_CHILD); - PyModule_AddIntConstant(m, "SPAWN_SEARCH_PATH", - G_SPAWN_SEARCH_PATH); - PyModule_AddIntConstant(m, "SPAWN_STDOUT_TO_DEV_NULL", - G_SPAWN_STDOUT_TO_DEV_NULL); - PyModule_AddIntConstant(m, "SPAWN_STDERR_TO_DEV_NULL", - G_SPAWN_STDERR_TO_DEV_NULL); - PyModule_AddIntConstant(m, "SPAWN_CHILD_INHERITS_STDIN", - G_SPAWN_CHILD_INHERITS_STDIN); - PyModule_AddIntConstant(m, "SPAWN_FILE_AND_ARGV_ZERO", - G_SPAWN_FILE_AND_ARGV_ZERO); + PyModule_AddIntConstant(m, "OPTION_FLAG_HIDDEN", + G_OPTION_FLAG_HIDDEN); + PyModule_AddIntConstant(m, "OPTION_FLAG_IN_MAIN", + G_OPTION_FLAG_IN_MAIN); + PyModule_AddIntConstant(m, "OPTION_FLAG_REVERSE", + G_OPTION_FLAG_REVERSE); + PyModule_AddIntConstant(m, "OPTION_FLAG_NO_ARG", + G_OPTION_FLAG_NO_ARG); + PyModule_AddIntConstant(m, "OPTION_FLAG_FILENAME", + G_OPTION_FLAG_FILENAME); + PyModule_AddIntConstant(m, "OPTION_FLAG_OPTIONAL_ARG", + G_OPTION_FLAG_OPTIONAL_ARG); + PyModule_AddIntConstant(m, "OPTION_FLAG_NOALIAS)", + G_OPTION_FLAG_NOALIAS); + PyModule_AddIntConstant(m, "OPTION_ERROR_UNKNOWN_OPTION", + G_OPTION_ERROR_UNKNOWN_OPTION); + PyModule_AddIntConstant(m, "OPTION_ERROR_BAD_VALUE", + G_OPTION_ERROR_BAD_VALUE); + PyModule_AddIntConstant(m, "OPTION_ERROR_FAILED", + G_OPTION_ERROR_FAILED); + PyModule_AddStringConstant(m, "OPTION_REMAINING", + G_OPTION_REMAINING); + PyModule_AddStringConstant(m, "OPTION_ERROR", + (char*) g_quark_to_string(G_OPTION_ERROR)); /* The rest of the types are set in __init__.py */ PyModule_AddObject(m, "TYPE_INVALID", pyg_type_wrapper_new(G_TYPE_INVALID)); diff --git a/tests/test_gio.py b/tests/test_gio.py index 2d39220..128494f 100644 --- a/tests/test_gio.py +++ b/tests/test_gio.py @@ -3,7 +3,7 @@ import os import unittest -from common import gio, gobject +from common import gio, glib class TestFile(unittest.TestCase): @@ -29,7 +29,7 @@ class TestFile(unittest.TestCase): self.file.read_async(callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() def testReadAsyncError(self): @@ -87,7 +87,7 @@ class TestFile(unittest.TestCase): canc = gio.Cancellable() self.file.load_contents_async(callback, cancellable=canc) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() def testMountMountable(self): @@ -103,7 +103,7 @@ class TestFile(unittest.TestCase): try: try: retval = gfile.mount_enclosing_volume_finish(result) - except gobject.GError, e: + except glib.GError, e: # If we run the tests too fast if (e.domain == gio.ERROR and e.code == gio.ERROR_ALREADY_MOUNTED): @@ -121,7 +121,7 @@ class TestFile(unittest.TestCase): gfile.mount_enclosing_volume(mount_operation, mount_enclosing_volume_done) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() def testCopy(self): @@ -182,7 +182,7 @@ class TestGFileEnumerator(unittest.TestCase): self.file.enumerate_children_async( "standard::*", callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() def testNextFilesAsync(self): @@ -199,7 +199,7 @@ class TestGFileEnumerator(unittest.TestCase): enumerator = self.file.enumerate_children( "standard::*", gio.FILE_QUERY_INFO_NOFOLLOW_SYMLINKS) enumerator.next_files_async(1000, callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() @@ -229,7 +229,7 @@ class TestInputStream(unittest.TestCase): self.stream.read_async(7, callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() def testReadAsyncError(self): @@ -239,14 +239,14 @@ class TestInputStream(unittest.TestCase): self.count += 1 if self.count == 1: return - self.assertRaises(gobject.GError, stream.read_finish, result) + self.assertRaises(glib.GError, stream.read_finish, result) finally: loop.quit() self.stream.read_async(10240, callback) self.stream.read_async(10240, callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() self.assertEquals(self.count, 2) @@ -273,7 +273,7 @@ class TestInputStream(unittest.TestCase): self.stream.close_async(callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() @@ -304,21 +304,21 @@ class TestOutputStream(unittest.TestCase): self.stream.write_async("testing", callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() def testWriteAsyncError(self): def callback(stream, result): self.assertEquals(result.get_op_res_gssize(), 0) try: - self.assertRaises(gobject.GError, stream.write_finish, result) + self.assertRaises(glib.GError, stream.write_finish, result) finally: loop.quit() self.stream.close() self.stream.write_async("testing", callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() self.assertRaises(TypeError, self.stream.write_async) @@ -342,7 +342,7 @@ class TestOutputStream(unittest.TestCase): self.stream.close_async(callback) - loop = gobject.MainLoop() + loop = glib.MainLoop() loop.run() diff --git a/tests/test_mainloop.py b/tests/test_mainloop.py index 8294642..95e5f78 100644 --- a/tests/test_mainloop.py +++ b/tests/test_mainloop.py @@ -6,7 +6,7 @@ import sys import select import unittest -from common import gobject +from common import glib class TestMainLoop(unittest.TestCase): def testExceptionHandling(self): @@ -23,8 +23,8 @@ class TestMainLoop(unittest.TestCase): loop.quit() raise Exception("deadbabe") - loop = gobject.MainLoop() - gobject.child_watch_add(pid, child_died, loop) + loop = glib.MainLoop() + glib.child_watch_add(pid, child_died, loop) os.close(pipe_r) os.write(pipe_w, "Y") diff --git a/tests/test_source.py b/tests/test_source.py index 8e7e81c..a5118a9 100644 --- a/tests/test_source.py +++ b/tests/test_source.py @@ -6,11 +6,11 @@ import sys import select import unittest -from common import gobject +from common import glib, gobject -class Idle(gobject.Idle): +class Idle(glib.Idle): def __init__(self, loop): - gobject.Idle.__init__(self) + glib.Idle.__init__(self) self.count = 0 self.set_callback(self.callback, loop) @@ -18,9 +18,9 @@ class Idle(gobject.Idle): self.count += 1 return True -class MySource(gobject.Source): +class MySource(glib.Source): def __init__(self): - gobject.Source.__init__(self) + glib.Source.__init__(self) def prepare(self): return True, 0 @@ -40,12 +40,12 @@ class TestSource(unittest.TestCase): return True def setup_timeout(self, loop): - timeout = gobject.Timeout(500) + timeout = glib.Timeout(500) timeout.set_callback(self.timeout_callback, loop) timeout.attach() def testSources(self): - loop = gobject.MainLoop() + loop = glib.MainLoop() self.setup_timeout(loop) @@ -65,9 +65,9 @@ class TestSource(unittest.TestCase): def testSourcePrepare(self): # this test may not terminate if prepare() is wrapped incorrectly dispatched = [False] - loop = gobject.MainLoop() + loop = glib.MainLoop() - class CustomTimeout(gobject.Source): + class CustomTimeout(glib.Source): def prepare(self): return (False, 10) @@ -93,8 +93,8 @@ class TestSource(unittest.TestCase): class TestTimeout(unittest.TestCase): def test504337(self): - timeout_source = gobject.Timeout(20) - idle_source = gobject.Idle() + timeout_source = glib.Timeout(20) + idle_source = glib.Idle() if __name__ == '__main__': diff --git a/tests/test_subprocess.py b/tests/test_subprocess.py index b1c7dde..8495010 100644 --- a/tests/test_subprocess.py +++ b/tests/test_subprocess.py @@ -4,7 +4,7 @@ import gc import unittest import sys -from common import gobject +from common import glib, gobject class TestProcess(unittest.TestCase): @@ -14,12 +14,12 @@ class TestProcess(unittest.TestCase): def testChildWatch(self): self.data = None - self.loop = gobject.MainLoop() + self.loop = glib.MainLoop() argv = [sys.executable, '-c', 'import sys'] - pid, stdin, stdout, stderr = gobject.spawn_async( - argv, flags=gobject.SPAWN_DO_NOT_REAP_CHILD) + pid, stdin, stdout, stderr = glib.spawn_async( + argv, flags=glib.SPAWN_DO_NOT_REAP_CHILD) pid.close() - gobject.child_watch_add(pid, self._child_watch_cb, 12345) + glib.child_watch_add(pid, self._child_watch_cb, 12345) self.loop.run() self.assertEqual(self.data, 12345) diff --git a/tests/test_thread.py b/tests/test_thread.py index f1ec01a..9f77f0b 100644 --- a/tests/test_thread.py +++ b/tests/test_thread.py @@ -1,8 +1,9 @@ import os import unittest -from common import gobject, testhelper -main = gobject.MainLoop() +from common import glib, testhelper + +main = glib.MainLoop() class TestThread(unittest.TestCase): def from_thread_cb(self, test, enum): @@ -16,8 +17,8 @@ class TestThread(unittest.TestCase): self.obj.emit('emit-signal') def testExtensionModule(self): - gobject.idle_add(self.idle_cb) - gobject.timeout_add(50, self.timeout_cb) + glib.idle_add(self.idle_cb) + glib.timeout_add(50, self.timeout_cb) main.run() def timeout_cb(self): |