1from PyObjCTest.filepointer import OC_TestFilePointer 2from PyObjCTools.TestSupport import * 3 4fp = open('/etc/passwd', 'r') 5gFirstPasswdLine = fp.readline() 6fp.close() 7 8class TestFilePointer (TestCase): 9 def testOpenInPython(self): 10 fp = open('/etc/passwd', 'r') 11 o = OC_TestFilePointer.new() 12 line = o.readline_(fp) 13 fp.close() 14 15 self.assertEquals(line, gFirstPasswdLine) 16 17 def testOpenReadingInObjC(self): 18 o = OC_TestFilePointer.new() 19 fp = o.openFile_withMode_('/etc/passwd', 'r') 20 self.assert_(isinstance(fp, file)) 21 self.assertEquals(fp.mode, 'r') 22 23 line = fp.readline() 24 fp.close() 25 26 self.assertEquals(line, gFirstPasswdLine) 27 28 def testOpenWritingInObjC(self): 29 o = OC_TestFilePointer.new() 30 fp = o.openFile_withMode_('/tmp/pyobjc.filepointer.txt', 'w') 31 self.assert_(isinstance(fp, file)) 32 self.assertEquals(fp.mode, 'w') 33 34 fp.write('foobar\n') 35 fp.flush() # XXX: this isn't quite correct? 36 fp.close() 37 38 fp = open('/tmp/pyobjc.filepointer.txt') 39 data = fp.read() 40 self.assertEquals(data, 'foobar\n') 41 fp.close() 42 43 def testOpenReadWriteInObjC(self): 44 o = OC_TestFilePointer.new() 45 fp = o.openFile_withMode_('/tmp/pyobjc.filepointer.txt', 'w+') 46 self.assert_(isinstance(fp, file)) 47 self.assertEquals(fp.mode, 'w+') 48 49 def dont_testOpenAppendInObjC(self): 50 # We can't reliably detect append mode, don't bother testing for it. 51 o = OC_TestFilePointer.new() 52 fp = o.openFile_withMode_('/tmp/pyobjc.filepointer.txt', 'a') 53 self.assert_(isinstance(fp, file)) 54 self.assertEquals(fp.mode, 'a') 55 56 o = OC_TestFilePointer.new() 57 fp = o.openFile_withMode_('/tmp/pyobjc.filepointer.txt', 'a+') 58 self.assert_(isinstance(fp, file)) 59 self.assertEquals(fp.mode, 'a+') 60 61if __name__ == "__main__": 62 main() 63