Author: cito
Date: Fri Nov 20 11:09:28 2015
New Revision: 559
Log:
Add test for printing large objects
Again, note that the print function does not work with StringIO.
Modified:
branches/4.x/module/TEST_PyGreSQL_classic_connection.py
branches/4.x/module/TEST_PyGreSQL_classic_largeobj.py
trunk/module/TEST_PyGreSQL_classic_connection.py
trunk/module/TEST_PyGreSQL_classic_largeobj.py
Modified: branches/4.x/module/TEST_PyGreSQL_classic_connection.py
==============================================================================
--- branches/4.x/module/TEST_PyGreSQL_classic_connection.py Fri Nov 20
10:43:56 2015 (r558)
+++ branches/4.x/module/TEST_PyGreSQL_classic_connection.py Fri Nov 20
11:09:28 2015 (r559)
@@ -16,6 +16,7 @@
except ImportError:
import unittest
import sys
+import tempfile
import threading
import time
@@ -27,8 +28,6 @@
except ImportError: # Python < 2.6
namedtuple = None
-from StringIO import StringIO
-
# We need a database to test against. If LOCAL_PyGreSQL.py exists we will
# get our information from that. Otherwise we use the defaults.
dbname = 'unittest'
@@ -472,16 +471,17 @@
q = ("select 1 as a, 'hello' as h, 'w' as world"
" union select 2, 'xyz', 'uvw'")
r = self.c.query(q)
- s = StringIO()
- stdout, sys.stdout = sys.stdout, s
+ f = tempfile.TemporaryFile()
+ stdout, sys.stdout = sys.stdout, f
try:
print r
except Exception:
pass
finally:
sys.stdout = stdout
- r = s.getvalue()
- s.close()
+ f.seek(0)
+ r = f.read()
+ f.close()
self.assertEqual(r,
'a| h |world\n'
'-+-----+-----\n'
Modified: branches/4.x/module/TEST_PyGreSQL_classic_largeobj.py
==============================================================================
--- branches/4.x/module/TEST_PyGreSQL_classic_largeobj.py Fri Nov 20
10:43:56 2015 (r558)
+++ branches/4.x/module/TEST_PyGreSQL_classic_largeobj.py Fri Nov 20
11:09:28 2015 (r559)
@@ -15,6 +15,7 @@
import unittest2 as unittest # for Python < 2.7
except ImportError:
import unittest
+import sys
import tempfile
import pg # the module under test
@@ -365,6 +366,28 @@
f.close()
self.assertEqual(r, data)
+ def testPrint(self):
+ self.obj.open(pg.INV_WRITE)
+ data = 'some object to be printed'
+ self.obj.write(data)
+ f = tempfile.TemporaryFile()
+ stdout, sys.stdout = sys.stdout, f
+ try:
+ print self.obj
+ self.obj.close()
+ print self.obj
+ except Exception:
+ pass
+ finally:
+ sys.stdout = stdout
+ f.seek(0)
+ r = f.read()
+ f.close()
+ oid = self.obj.oid
+ self.assertEqual(r,
+ 'Opened large object, oid %d\n'
+ 'Closed large object, oid %d\n' % (oid, oid))
+
if __name__ == '__main__':
unittest.main()
Modified: trunk/module/TEST_PyGreSQL_classic_connection.py
==============================================================================
--- trunk/module/TEST_PyGreSQL_classic_connection.py Fri Nov 20 10:43:56
2015 (r558)
+++ trunk/module/TEST_PyGreSQL_classic_connection.py Fri Nov 20 11:09:28
2015 (r559)
@@ -17,11 +17,10 @@
import unittest2 as unittest # for Python < 2.7
except ImportError:
import unittest
-
import sys
+import tempfile
import threading
import time
-import tempfile
import pg # the module under test
Modified: trunk/module/TEST_PyGreSQL_classic_largeobj.py
==============================================================================
--- trunk/module/TEST_PyGreSQL_classic_largeobj.py Fri Nov 20 10:43:56
2015 (r558)
+++ trunk/module/TEST_PyGreSQL_classic_largeobj.py Fri Nov 20 11:09:28
2015 (r559)
@@ -15,7 +15,7 @@
import unittest2 as unittest # for Python < 2.7
except ImportError:
import unittest
-
+import sys
import tempfile
import pg # the module under test
@@ -366,6 +366,28 @@
f.close()
self.assertEqual(r, data)
+ def testPrint(self):
+ self.obj.open(pg.INV_WRITE)
+ data = 'some object to be printed'
+ self.obj.write(data)
+ f = tempfile.TemporaryFile()
+ stdout, sys.stdout = sys.stdout, f
+ try:
+ print(self.obj)
+ self.obj.close()
+ print(self.obj)
+ except Exception:
+ pass
+ finally:
+ sys.stdout = stdout
+ f.seek(0)
+ r = f.read()
+ f.close()
+ oid = self.obj.oid
+ self.assertEqual(r,
+ 'Opened large object, oid %d\n'
+ 'Closed large object, oid %d\n' % (oid, oid))
+
if __name__ == '__main__':
unittest.main()
_______________________________________________
PyGreSQL mailing list
[email protected]
https://mail.vex.net/mailman/listinfo.cgi/pygresql