#Licensed to the Apache Software Foundation (ASF) under one #or more contributor license agreements. See the NOTICE file #distributed with this work for additional information #regarding copyright ownership. The ASF licenses this file #to you under the Apache License, Version 2.0 (the #"License"); you may not use this file except in compliance #with the License. You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 #Unless required by applicable law or agreed to in writing, software #distributed under the License is distributed on an "AS IS" BASIS, #WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #See the License for the specific language governing permissions and #limitations under the License. import unittest, os, sys, re, threading, time myDirectory = os.path.realpath(sys.argv[0]) rootDirectory = re.sub("/testing/.*", "", myDirectory) sys.path.append(rootDirectory) from testing.lib import BaseTestSuite # module specific imports import os, tempfile, random excludes = [] import getpass from hodlib.Common.threads import simpleCommand from testing.helper import sampleText # All test-case classes should have the naming convention test_.* class test_SimpleCommand(unittest.TestCase): def setUp(self): self.rootDir = '/tmp/hod-%s' % getpass.getuser() if not os.path.exists(self.rootDir): os.mkdir(self.rootDir) self.prefix= 'ThreadsTestSuite.test_SimpleCommand' self.testFile = None pass def testRedirectedStdout(self): self.testFile= tempfile.NamedTemporaryFile(dir=self.rootDir, \ prefix=self.prefix) cmd=simpleCommand('helper','%s %s 1 1>%s' % \ (sys.executable, \ os.path.join(rootDirectory, "testing", "helper.py"), \ self.testFile.name)) cmd.start() cmd.join() self.testFile.seek(0) stdout = self.testFile.read() # print stdout, sampleText assert(stdout == sampleText) pass def testRedirectedStderr(self): self.testFile= tempfile.NamedTemporaryFile(dir=self.rootDir, \ prefix=self.prefix) cmd=simpleCommand('helper','%s %s 2 2>%s' % \ (sys.executable, \ os.path.join(rootDirectory, "testing", "helper.py"), \ self.testFile.name)) cmd.start() cmd.join() self.testFile.seek(0) stderror = self.testFile.read() # print stderror, sampleText assert(stderror == sampleText) pass def tearDown(self): if self.testFile: self.testFile.close() pass class ThreadsTestSuite(BaseTestSuite): def __init__(self): # suite setup BaseTestSuite.__init__(self, __name__, excludes) pass def cleanUp(self): # suite tearDown pass def RunThreadsTests(): # modulename_suite suite = ThreadsTestSuite() testResult = suite.runTests() suite.cleanUp() return testResult if __name__ == "__main__": RunThreadsTests()