[Python-checkins] CVS: python/dist/src/Lib/test test_StringIO.py,1.6,1.7

Barry Warsaw bwarsaw@users.sourceforge.net
Fri, 21 Sep 2001 21:33:49 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv28269/Lib/test

Modified Files:
	test_StringIO.py 
Log Message:
Converted test_StringIO.py to use unittest, so
Lib/test/output/test_StringIO is no longer necessary.

Also, added a test of the iterator protocol that's just been added to
StringIO's and cStringIO's.


Index: test_StringIO.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_StringIO.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** test_StringIO.py	2001/02/09 23:44:22	1.6
--- test_StringIO.py	2001/09/22 04:33:47	1.7
***************
*** 1,43 ****
  # Tests StringIO and cStringIO
  
! def do_test(module):
!     s = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"+'\n')*5
!     f = module.StringIO(s)
!     print f.read(10)
!     print f.readline()
!     print len(f.readlines(60))
  
-     f = module.StringIO()
-     f.write('abcdef')
-     f.seek(3)
-     f.write('uvwxyz')
-     f.write('!')
-     print `f.getvalue()`
-     f.close()
  
!     f = module.StringIO()
!     f.writelines(["a", "b", "c"])
!     f.seek(0)
!     print `f.getvalue()`
!     f.close()
  
!     f = module.StringIO()
!     f.write(s)
!     f.seek(10)
!     f.truncate()
!     print `f.getvalue()`
!     f.seek(0)
!     f.truncate(5)
!     print `f.getvalue()`
!     f.close()
!     try:
!         f.write("frobnitz")
!     except ValueError, e:
!         print "Caught expected ValueError writing to closed StringIO:"
!         print e
!     else:
!         print "Failed to catch ValueError writing to closed StringIO."
  
! import StringIO, cStringIO
! do_test(StringIO)
! do_test(cStringIO)
--- 1,73 ----
  # Tests StringIO and cStringIO
  
! import unittest
! import StringIO
! import cStringIO
! import types
! import test_support
  
  
! class TestGenericStringIO(unittest.TestCase):
!     # use a class variable MODULE to define which module is being tested
  
!     def setUp(self):
!         self._line = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
!         self._lines = (self._line + '\n') * 5
!         self._fp = self.MODULE.StringIO(self._lines)
  
!     def test_reads(self):
!         eq = self.assertEqual
!         eq(self._fp.read(10), 'abcdefghij')
!         eq(self._fp.readline(), 'klmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n')
!         eq(len(self._fp.readlines(60)), 2)
! 
!     def test_writes(self):
!         f = self.MODULE.StringIO()
!         f.write('abcdef')
!         f.seek(3)
!         f.write('uvwxyz')
!         f.write('!')
!         self.assertEqual(f.getvalue(), 'abcuvwxyz!')
! 
!     def test_writelines(self):
!         f = self.MODULE.StringIO()
!         f.writelines(['a', 'b', 'c'])
!         f.seek(0)
!         self.assertEqual(f.getvalue(), 'abc')
! 
!     def test_truncate(self):
!         eq = self.assertEqual
!         f = self.MODULE.StringIO()
!         f.write(self._lines)
!         f.seek(10)
!         f.truncate()
!         eq(f.getvalue(), 'abcdefghij')
!         f.seek(0)
!         f.truncate(5)
!         eq(f.getvalue(), 'abcde')
!         f.close()
!         self.assertRaises(ValueError, f.write, 'frobnitz')
! 
!     def test_iterator(self):
!         eq = self.assertEqual
!         it = iter(self._fp)
!         self.failUnless(isinstance(it, types.FunctionIterType))
!         i = 0
!         for line in self._fp:
!             eq(line, self._line + '\n')
!             i += 1
!         eq(i, 5)
! 
! class TestStringIO(TestGenericStringIO):
!     MODULE = StringIO
! 
! class TestcStringIO(TestGenericStringIO):
!     MODULE = cStringIO
! 
! 
! def test_main():
!     test_support.run_unittest(TestStringIO)
!     test_support.run_unittest(TestcStringIO)
! 
! if __name__ == '__main__':
!     test_main()