blob: 22753cfe9056c0b2fd60cd788a6c43534d37d837 [file] [log] [blame]
#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()