1from PyObjCTools.TestSupport import * 2from Foundation import * 3 4class TestNSStreamHelper (NSObject): 5 def stream_handleEvent_(self, a, b): pass 6 7class TestNSStreamUsage(TestCase): 8 9 def testUsage(self): 10 # Test the usage of methods that require extra work 11 12 # Try to create a connection to the IPP port on the local host 13 inputStream, outputStream = NSStream.getStreamsToHost_port_inputStream_outputStream_( 14 NSHost.hostWithAddress_(u"127.0.0.1"), 15 631, # IPP port 16 None, 17 None 18 ) 19 20 self.assert_(isinstance(inputStream, NSInputStream)) 21 self.assert_(isinstance(outputStream, NSOutputStream)) 22 23 inputStream.close() 24 outputStream.close() 25 26 def testConstants(self): 27 self.failUnlessEqual(NSStreamStatusNotOpen, 0) 28 self.failUnlessEqual(NSStreamStatusOpening, 1) 29 self.failUnlessEqual(NSStreamStatusOpen, 2) 30 self.failUnlessEqual(NSStreamStatusReading, 3) 31 self.failUnlessEqual(NSStreamStatusWriting, 4) 32 self.failUnlessEqual(NSStreamStatusAtEnd, 5) 33 self.failUnlessEqual(NSStreamStatusClosed, 6) 34 self.failUnlessEqual(NSStreamStatusError, 7) 35 36 self.failUnlessEqual(NSStreamEventNone, 0) 37 self.failUnlessEqual(NSStreamEventOpenCompleted, 1 << 0) 38 self.failUnlessEqual(NSStreamEventHasBytesAvailable, 1 << 1) 39 self.failUnlessEqual(NSStreamEventHasSpaceAvailable, 1 << 2) 40 self.failUnlessEqual(NSStreamEventErrorOccurred, 1 << 3) 41 self.failUnlessEqual(NSStreamEventEndEncountered, 1 << 4) 42 43 self.failUnlessIsInstance(NSStreamSocketSecurityLevelKey, unicode) 44 self.failUnlessIsInstance(NSStreamSocketSecurityLevelNone, unicode) 45 self.failUnlessIsInstance(NSStreamSocketSecurityLevelSSLv2, unicode) 46 self.failUnlessIsInstance(NSStreamSocketSecurityLevelSSLv3, unicode) 47 self.failUnlessIsInstance(NSStreamSocketSecurityLevelTLSv1, unicode) 48 self.failUnlessIsInstance(NSStreamSocketSecurityLevelNegotiatedSSL, unicode) 49 self.failUnlessIsInstance(NSStreamSOCKSProxyConfigurationKey, unicode) 50 self.failUnlessIsInstance(NSStreamSOCKSProxyHostKey, unicode) 51 self.failUnlessIsInstance(NSStreamSOCKSProxyPortKey, unicode) 52 self.failUnlessIsInstance(NSStreamSOCKSProxyVersionKey, unicode) 53 self.failUnlessIsInstance(NSStreamSOCKSProxyUserKey, unicode) 54 self.failUnlessIsInstance(NSStreamSOCKSProxyPasswordKey, unicode) 55 self.failUnlessIsInstance(NSStreamSOCKSProxyVersion4, unicode) 56 self.failUnlessIsInstance(NSStreamSOCKSProxyVersion5, unicode) 57 self.failUnlessIsInstance(NSStreamDataWrittenToMemoryStreamKey, unicode) 58 self.failUnlessIsInstance(NSStreamFileCurrentOffsetKey, unicode) 59 self.failUnlessIsInstance(NSStreamSocketSSLErrorDomain, unicode) 60 self.failUnlessIsInstance(NSStreamSOCKSErrorDomain, unicode) 61 62 def testMethods(self): 63 self.failUnlessResultIsBOOL(NSStream.setProperty_forKey_) 64 65 self.failUnlessArgHasType(NSInputStream.read_maxLength_, 0, 'o^v') 66 self.failUnlessArgSizeInArg(NSInputStream.read_maxLength_, 0, 1) 67 self.failUnlessArgSizeInResult(NSInputStream.read_maxLength_, 0) 68 69 self.failUnlessResultIsBOOL(NSInputStream.hasBytesAvailable) 70 71 self.failUnlessArgHasType(NSOutputStream.write_maxLength_, 0, 'n^v') 72 self.failUnlessArgSizeInArg(NSOutputStream.write_maxLength_, 0, 1) 73 self.failUnlessResultIsBOOL(NSOutputStream.hasSpaceAvailable) 74 75 b = NSOutputStream.alloc().initToMemory() 76 self.failUnlessArgHasType(b.initToFileAtPath_append_, 1, objc._C_NSBOOL) 77 self.failUnlessArgHasType(NSOutputStream.outputStreamToFileAtPath_append_, 1, objc._C_NSBOOL) 78 79 self.failUnlessArgHasType(b.initToBuffer_capacity_, 0, 'o^v') 80 self.failUnlessArgSizeInArg(b.initToBuffer_capacity_, 0, 1) 81 self.failUnlessArgHasType(NSOutputStream.outputStreamToBuffer_capacity_, 0, 'o^v') 82 self.failUnlessArgSizeInArg(NSOutputStream.outputStreamToBuffer_capacity_, 0, 1) 83 84 def testDelegate(self): 85 self.failUnlessArgHasType(TestNSStreamHelper.stream_handleEvent_, 1, objc._C_NSUInteger) 86 87if __name__ == '__main__': 88 main() 89