testThreads.py
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. #Licensed to the Apache Software Foundation (ASF) under one
  2. #or more contributor license agreements.  See the NOTICE file
  3. #distributed with this work for additional information
  4. #regarding copyright ownership.  The ASF licenses this file
  5. #to you under the Apache License, Version 2.0 (the
  6. #"License"); you may not use this file except in compliance
  7. #with the License.  You may obtain a copy of the License at
  8. #     http://www.apache.org/licenses/LICENSE-2.0
  9. #Unless required by applicable law or agreed to in writing, software
  10. #distributed under the License is distributed on an "AS IS" BASIS,
  11. #WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. #See the License for the specific language governing permissions and
  13. #limitations under the License.
  14. import unittest, os, sys, re, threading, time
  15. myDirectory = os.path.realpath(sys.argv[0])
  16. rootDirectory   = re.sub("/testing/.*", "", myDirectory)
  17. sys.path.append(rootDirectory)
  18. from testing.lib import BaseTestSuite
  19. # module specific imports
  20. import os, tempfile, random
  21. excludes = []
  22. import getpass
  23. from hodlib.Common.threads import simpleCommand
  24. from testing.helper import sampleText
  25. # All test-case classes should have the naming convention test_.*
  26. class test_SimpleCommand(unittest.TestCase):
  27.   def setUp(self):
  28.     self.rootDir = '/tmp/hod-%s' % getpass.getuser()
  29.     if not os.path.exists(self.rootDir):
  30.       os.mkdir(self.rootDir)
  31.     self.prefix= 'ThreadsTestSuite.test_SimpleCommand'
  32.     self.testFile = None
  33.     pass
  34.   def testRedirectedStdout(self):
  35.     self.testFile= tempfile.NamedTemporaryFile(dir=self.rootDir, 
  36.                                                prefix=self.prefix)
  37.     cmd=simpleCommand('helper','%s %s 1 1>%s' % 
  38.                       (sys.executable, 
  39.                       os.path.join(rootDirectory, "testing", "helper.py"), 
  40.                       self.testFile.name))
  41.     cmd.start()
  42.     cmd.join()
  43.     
  44.     self.testFile.seek(0)
  45.     stdout = self.testFile.read()
  46.     # print stdout, sampleText
  47.     assert(stdout == sampleText)
  48.     pass
  49.   def testRedirectedStderr(self):
  50.     self.testFile= tempfile.NamedTemporaryFile(dir=self.rootDir, 
  51.                                                 prefix=self.prefix)
  52.     cmd=simpleCommand('helper','%s %s 2 2>%s' % 
  53.                       (sys.executable, 
  54.                       os.path.join(rootDirectory, "testing", "helper.py"), 
  55.                       self.testFile.name))
  56.     cmd.start()
  57.     cmd.join()
  58.      
  59.     self.testFile.seek(0)
  60.     stderror = self.testFile.read()
  61.     # print stderror, sampleText
  62.     assert(stderror == sampleText)
  63.     pass
  64.   def tearDown(self):
  65.     if self.testFile: self.testFile.close()
  66.     pass
  67. class ThreadsTestSuite(BaseTestSuite):
  68.   def __init__(self):
  69.     # suite setup
  70.     BaseTestSuite.__init__(self, __name__, excludes)
  71.     pass
  72.   
  73.   def cleanUp(self):
  74.     # suite tearDown
  75.     pass
  76. def RunThreadsTests():
  77.   # modulename_suite
  78.   suite = ThreadsTestSuite()
  79.   testResult = suite.runTests()
  80.   suite.cleanUp()
  81.   return testResult
  82. if __name__ == "__main__":
  83.   RunThreadsTests()