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

Reply via email to