[Python-checkins] python/nondist/sandbox/csv/test test_csv.py,1.34,1.35

montanaro@users.sourceforge.net montanaro@users.sourceforge.net
Wed, 26 Feb 2003 12:59:32 -0800


Update of /cvsroot/python/python/nondist/sandbox/csv/test
In directory sc8-pr-cvs1:/tmp/cvs-serv23054

Modified Files:
	test_csv.py 
Log Message:
add unit tests for dialect validity


Index: test_csv.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/csv/test/test_csv.py,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** test_csv.py	15 Feb 2003 00:52:11 -0000	1.34
--- test_csv.py	26 Feb 2003 20:59:29 -0000	1.35
***************
*** 460,466 ****
--- 460,533 ----
          self.assertEqual(fileobj.getvalue(), expected)
  
+ class TestDialectValidity(unittest.TestCase):
+     def test_quoting(self):
+         class mydialect(csv.Dialect):
+             delimiter = ";"
+             escapechar = '\\'
+             doublequote = False
+             skipinitialspace = True
+             lineterminator = '\r\n'
+             quoting = csv.QUOTE_NONE
+         d = mydialect()
+ 
+         mydialect.quoting = None
+         self.assertRaises(csv.Error, mydialect)
+ 
+         mydialect.quoting = csv.QUOTE_NONE
+         mydialect.escapechar = None
+         self.assertRaises(csv.Error, mydialect)
+ 
+         mydialect.doublequote = True
+         mydialect.quoting = csv.QUOTE_ALL
+         mydialect.quotechar = '"'
+         d = mydialect()
+ 
+         mydialect.quotechar = "''"
+         self.assertRaises(csv.Error, mydialect)
+ 
+         mydialect.quotechar = 4
+         self.assertRaises(csv.Error, mydialect)
+ 
+     def test_delimiter(self):
+         class mydialect(csv.Dialect):
+             delimiter = ";"
+             escapechar = '\\'
+             doublequote = False
+             skipinitialspace = True
+             lineterminator = '\r\n'
+             quoting = csv.QUOTE_NONE
+         d = mydialect()
+ 
+         mydialect.delimiter = ":::"
+         self.assertRaises(csv.Error, mydialect)
+ 
+         mydialect.delimiter = 4
+         self.assertRaises(csv.Error, mydialect)
+ 
+     def test_lineterminator(self):
+         class mydialect(csv.Dialect):
+             delimiter = ";"
+             escapechar = '\\'
+             doublequote = False
+             skipinitialspace = True
+             lineterminator = '\r\n'
+             quoting = csv.QUOTE_NONE
+         d = mydialect()
+ 
+         mydialect.lineterminator = ":::"
+         d = mydialect()
+ 
+         mydialect.lineterminator = 4
+         self.assertRaises(csv.Error, mydialect)
+ 
+ 
  if not hasattr(sys, "gettotalrefcount"):
      print "*** skipping leakage tests ***"
  else:
+     class NUL:
+         def write(s, *args):
+             pass
+         writelines = write
+ 
      class TestLeaks(unittest.TestCase):
          def test_create_read(self):
***************
*** 482,486 ****
              delta = 0
              lastrc = sys.gettotalrefcount()
!             s = StringIO()
              for i in xrange(20):
                  gc.collect()
--- 549,553 ----
              delta = 0
              lastrc = sys.gettotalrefcount()
!             s = NUL()
              for i in xrange(20):
                  gc.collect()
***************
*** 514,520 ****
              delta = 0
              rows = [[1,2,3]]*5
-             class NUL:
-                 def write(s, *args):
-                     pass
              s = NUL()
              lastrc = sys.gettotalrefcount()
--- 581,584 ----