Author: cito
Date: Sat Nov 21 18:40:19 2015
New Revision: 580
Log:
Return proper __class__ and __module__ attrs
We do not need to customize __class__ attribute (anyway it was wrong
since it should return a class, not a class name).
Also, return the proper names of the PyGreSQL modules.
Modified:
trunk/module/TEST_PyGreSQL_classic_connection.py
trunk/module/TEST_PyGreSQL_classic_dbwrapper.py
trunk/module/TEST_PyGreSQL_classic_largeobj.py
trunk/module/pgmodule.c
Modified: trunk/module/TEST_PyGreSQL_classic_connection.py
==============================================================================
--- trunk/module/TEST_PyGreSQL_classic_connection.py Sat Nov 21 17:37:44
2015 (r579)
+++ trunk/module/TEST_PyGreSQL_classic_connection.py Sat Nov 21 18:40:19
2015 (r580)
@@ -76,6 +76,12 @@
except pg.InternalError:
pass
+ def testClassName(self):
+ self.assertEqual(self.connection.__class__.__name__, 'pgconnobject')
+
+ def testModuleName(self):
+ self.assertEqual(self.connection.__module__, 'pg')
+
def testAllConnectAttributes(self):
attributes = '''db error host options port
protocol_version server_version status tty user'''.split()
Modified: trunk/module/TEST_PyGreSQL_classic_dbwrapper.py
==============================================================================
--- trunk/module/TEST_PyGreSQL_classic_dbwrapper.py Sat Nov 21 17:37:44
2015 (r579)
+++ trunk/module/TEST_PyGreSQL_classic_dbwrapper.py Sat Nov 21 18:40:19
2015 (r580)
@@ -293,6 +293,12 @@
def tearDown(self):
self.db.close()
+ def testClassName(self):
+ self.assertEqual(self.db.__class__.__name__, 'DB')
+
+ def testModuleName(self):
+ self.assertEqual(self.db.__module__, 'pg')
+
def testEscapeLiteral(self):
f = self.db.escape_literal
self.assertEqual(f("plain"), "'plain'")
Modified: trunk/module/TEST_PyGreSQL_classic_largeobj.py
==============================================================================
--- trunk/module/TEST_PyGreSQL_classic_largeobj.py Sat Nov 21 17:37:44
2015 (r579)
+++ trunk/module/TEST_PyGreSQL_classic_largeobj.py Sat Nov 21 18:40:19
2015 (r580)
@@ -158,6 +158,12 @@
self.pgcnx.query('end')
self.pgcnx.close()
+ def testClassName(self):
+ self.assertEqual(self.obj.__class__.__name__, 'pglarge')
+
+ def testModuleName(self):
+ self.assertEqual(self.obj.__module__, 'pg')
+
def testOid(self):
self.assertIsInstance(self.obj.oid, int)
self.assertNotEqual(self.obj.oid, 0)
Modified: trunk/module/pgmodule.c
==============================================================================
--- trunk/module/pgmodule.c Sat Nov 21 17:37:44 2015 (r579)
+++ trunk/module/pgmodule.c Sat Nov 21 18:40:19 2015 (r580)
@@ -54,7 +54,8 @@
#endif
/* default values */
-#define MODULE_NAME "pgsql"
+#define MODULE_NAME "pg"
+#define MODULE_NAME_DB "pgdb"
#define PG_ARRAYSIZE 1
/* flags for object validity checks */
@@ -963,10 +964,6 @@
if (!strcmp(name, "__module__"))
return PyStr_FromString(MODULE_NAME);
- /* class name */
- if (!strcmp(name, "__class__"))
- return PyStr_FromString("pglarge");
-
/* seeks name in methods (fallback) */
return PyObject_GenericGetAttr((PyObject *) self, nameobj);
}
@@ -2256,6 +2253,10 @@
return PyInt_FromLong(PQserverVersion(self->cnx));
#endif
+ /* module name */
+ if (!strcmp(name, "__module__"))
+ return PyStr_FromString(MODULE_NAME);
+
return PyObject_GenericGetAttr((PyObject *) self, nameobj);
}
@@ -2869,11 +2870,7 @@
/* module name */
if (!strcmp(name, "__module__"))
- return PyStr_FromString(MODULE_NAME);
-
- /* class name */
- if (!strcmp(name, "__class__"))
- return PyStr_FromString("pgsource");
+ return PyStr_FromString(MODULE_NAME_DB);
/* seeks name in methods (fallback) */
return PyObject_GenericGetAttr((PyObject *) self, nameobj);
@@ -3534,6 +3531,10 @@
}
}
+ /* module name */
+ if (!strcmp(name, "__module__"))
+ return PyStr_FromString(MODULE_NAME);
+
return PyObject_GenericGetAttr((PyObject *) self, nameobj);
}
@@ -4236,10 +4237,14 @@
#endif
#endif
- if (PyType_Ready(&connType) ||
- PyType_Ready(¬iceType) ||
- PyType_Ready(&queryType) ||
- PyType_Ready(&sourceType)) return NULL;
+ if (PyType_Ready(&connType)
+ || PyType_Ready(¬iceType)
+ || PyType_Ready(&queryType)
+ || PyType_Ready(&sourceType)
+#ifdef LARGE_OBJECTS
+ || PyType_Ready(largeType.ob_type)
+#endif
+ ) return NULL;
dict = PyModule_GetDict(mod);
_______________________________________________
PyGreSQL mailing list
[email protected]
https://mail.vex.net/mailman/listinfo.cgi/pygresql