Author: cito
Date: Sun Nov 22 14:09:49 2015
New Revision: 606
Log:
Amend the large obj tests for Windows
Modified:
trunk/module/TEST_PyGreSQL_classic_largeobj.py
Modified: trunk/module/TEST_PyGreSQL_classic_largeobj.py
==============================================================================
--- trunk/module/TEST_PyGreSQL_classic_largeobj.py Sun Nov 22 13:20:09
2015 (r605)
+++ trunk/module/TEST_PyGreSQL_classic_largeobj.py Sun Nov 22 14:09:49
2015 (r606)
@@ -16,6 +16,7 @@
except ImportError:
import unittest
import tempfile
+import os
import pg # the module under test
@@ -30,6 +31,8 @@
except ImportError:
pass
+windows = os.name == 'nt'
+
def connect():
"""Create a basic pg connection to the test database."""
@@ -59,7 +62,7 @@
self.c.query('begin')
def tearDown(self):
- self.c.query('end')
+ self.c.query('rollback')
self.c.close()
def assertIsLargeObject(self, obj):
@@ -113,14 +116,26 @@
self.assertEqual(r, data)
def testLoImport(self):
- f = tempfile.NamedTemporaryFile()
+ if windows:
+ # NamedTemporaryFiles don't work well here
+ fname = 'temp_test_pg_largeobj_import.txt'
+ f = open(fname, 'wb')
+ else:
+ f = tempfile.NamedTemporaryFile()
+ fname = f.name
data = b'some data to be imported'
f.write(data)
- f.flush()
- f.seek(0)
+ if windows:
+ f.close()
+ f = open(fname, 'rb')
+ else:
+ f.flush()
+ f.seek(0)
large_object = self.c.loimport(f.name)
try:
f.close()
+ if windows:
+ os.remove(fname)
self.assertIsLargeObject(large_object)
large_object.open(pg.INV_READ)
large_object.seek(0, pg.SEEK_SET)
@@ -148,14 +163,17 @@
if self.obj.oid:
try:
self.obj.close()
- except IOError:
+ except (SystemError, IOError):
pass
try:
self.obj.unlink()
- except IOError:
+ except (SystemError, IOError):
pass
del self.obj
- self.pgcnx.query('end')
+ try:
+ self.pgcnx.query('rollback')
+ except SystemError:
+ pass
self.pgcnx.close()
def testClassName(self):
@@ -363,7 +381,10 @@
finally:
del obj
unlink()
- self.assertIsNone(self.obj.oid)
+ try:
+ self.assertIsNone(self.obj.oid)
+ except SystemError:
+ pass
def testSize(self):
size = self.obj.size
@@ -412,16 +433,27 @@
self.assertRaises(TypeError, export)
self.assertRaises(TypeError, export, 0)
self.assertRaises(TypeError, export, 'invalid', 0)
- f = tempfile.NamedTemporaryFile()
+ if windows:
+ # NamedTemporaryFiles don't work well here
+ fname = 'temp_test_pg_largeobj_export.txt'
+ f = open(fname, 'wb')
+ else:
+ f = tempfile.NamedTemporaryFile()
+ fname = f.name
data = b'some data to be exported'
self.obj.open(pg.INV_WRITE)
self.obj.write(data)
# exporting when object is not yet closed
self.assertRaises(IOError, export, f.name)
self.obj.close()
- export(f.name)
+ export(fname)
+ if windows:
+ f.close()
+ f = open(fname, 'rb')
r = f.read()
f.close()
+ if windows:
+ os.remove(fname)
self.assertIsInstance(r, bytes)
self.assertEqual(r, data)
_______________________________________________
PyGreSQL mailing list
[email protected]
https://mail.vex.net/mailman/listinfo.cgi/pygresql