Author: cito
Date: Mon Nov 23 16:15:38 2015
New Revision: 615

Log:
Reset decimal point and class after testing

These were not always reset in the case of failures which then could
cause subsequent failures.

Modified:
   trunk/module/TEST_PyGreSQL_classic_connection.py

Modified: trunk/module/TEST_PyGreSQL_classic_connection.py
==============================================================================
--- trunk/module/TEST_PyGreSQL_classic_connection.py    Mon Nov 23 14:16:56 
2015        (r614)
+++ trunk/module/TEST_PyGreSQL_classic_connection.py    Mon Nov 23 16:15:38 
2015        (r615)
@@ -1141,6 +1141,13 @@
         point = pg.get_decimal_point()
         self.assertIsInstance(point, str)
         self.assertEqual(point, '.')
+        pg.set_decimal_point(',')
+        try:
+            r = pg.get_decimal_point()
+        finally:
+            pg.set_decimal_point(point)
+        self.assertIsInstance(r, str)
+        self.assertEqual(r, ',')
 
     def testSetDecimalPoint(self):
         d = pg.Decimal
@@ -1159,18 +1166,25 @@
                 break
         else:
             self.SkipTest("cannot set English money locale")
-        pg.set_decimal_point('.')
         try:
             r = query("select '34.25'::money")
         except pg.ProgrammingError:
             # this can happen if the currency signs cannot be
             # converted using the encoding of the test database
             self.skipTest('database does not support money')
-        r = r.getresult()[0][0]
+        pg.set_decimal_point('.')
+        try:
+            r = r.getresult()[0][0]
+        finally:
+            pg.set_decimal_point(point)
         self.assertIsInstance(r, d)
         self.assertEqual(r, d('34.25'))
+        r = query("select '34.25'::money")
         pg.set_decimal_point(',')
-        r = query("select '34.25'::money").getresult()[0][0]
+        try:
+            r = r.getresult()[0][0]
+        finally:
+            pg.set_decimal_point(point)
         self.assertNotEqual(r, d('34.25'))
         # then try with German localization (using the comma)
         for lc in 'de', 'de_DE', 'de_DE.utf8', 'de_DE.UTF-8':
@@ -1182,35 +1196,44 @@
                 break
         else:
             self.SkipTest("cannot set German money locale")
-        pg.set_decimal_point(',')
         try:
             r = query("select '34,25'::money")
         except pg.ProgrammingError:
             self.skipTest('database does not support money')
-        r = r.getresult()[0][0]
+        pg.set_decimal_point(',')
+        try:
+            r = r.getresult()[0][0]
+        finally:
+            pg.set_decimal_point(point)
         self.assertIsInstance(r, d)
         self.assertEqual(r, d('34.25'))
+        r = query("select '34,25'::money")
         pg.set_decimal_point('.')
         try:
-            r = query("select '34,25'::money")
-        except pg.ProgrammingError:
-            self.skipTest('database does not support money')
-        r = r.getresult()[0][0]
+            r = r.getresult()[0][0]
+        finally:
+            pg.set_decimal_point(point)
         self.assertNotEqual(r, d('34.25'))
-        pg.set_decimal_point(point)
 
     def testSetDecimal(self):
         d = pg.Decimal
         query = self.c.query
-        r = query("select 3425::numeric").getresult()[0][0]
+        try:
+            r = query("select 3425::numeric")
+        except pg.ProgrammingError:
+            self.skipTest('database does not support numeric')
+        r = r.getresult()[0][0]
         self.assertIsInstance(r, d)
         self.assertEqual(r, d('3425'))
+        r = query("select 3425::numeric")
         pg.set_decimal(long)
-        r = query("select 3425::numeric").getresult()[0][0]
+        try:
+            r = r.getresult()[0][0]
+        finally:
+            pg.set_decimal(d)
         self.assertNotIsInstance(r, d)
         self.assertIsInstance(r, long)
         self.assertEqual(r, long(3425))
-        pg.set_decimal(d)
 
     def testSetNamedresult(self):
         query = self.c.query
_______________________________________________
PyGreSQL mailing list
[email protected]
https://mail.vex.net/mailman/listinfo.cgi/pygresql

Reply via email to