📄 lib.py
字号:
#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, re, sysclass BaseTestSuite(): def __init__(self, name, excludes): self.name = name self.excludes = excludes pass def runTests(self): # Create a runner self.runner = unittest.TextTestRunner() # Get all the test-case classes # From module import * mod = __import__(self.name, fromlist=['*']) modItemsList = dir(mod) allsuites = [] # Create all the test suites for modItem in modItemsList: if re.search(r"^test_", modItem): # Yes this is a test class if modItem not in self.excludes: test_class = getattr(mod, modItem) allsuites.append(unittest.makeSuite(test_class)) # Create a master suite to be run. alltests = unittest.TestSuite(tuple(allsuites)) # Run the master test suite. runner = self.runner.run(alltests) if(runner.wasSuccessful()): return 0 printLine( "%s test(s) failed." % runner.failures.__len__()) printLine( "%s test(s) threw errors." % runner.errors.__len__()) return runner.failures.__len__() + runner.errors.__len__() def cleanUp(self): # suite tearDown passdef printLine(str): print >>sys.stderr, strdef printSeparator(): str = "" for i in range(0,79): str = str + "*" print >>sys.stderr, "\n", str, "\n"# This class captures all log messages logged by hodRunner and other classes.# It is then used to verify that certain log messages have come. This is one# way to validate that messages printed to the logger are correctly written.class MockLogger: def __init__(self): self.__logLines = {} def info(self, message): self.__logLines[message] = 'info' def critical(self, message): self.__logLines[message] = 'critical' def warn(self, message): self.__logLines[message] = 'warn' def debug(self, message): # don't track debug lines. pass # verify a certain message has been logged at the defined level of severity. def hasMessage(self, message, level): if not self.__logLines.has_key(message): return False return self.__logLines[message] == level# Stub class to test cluster manipulation operations.class MockHadoopCluster: def __init__(self): # store the operations received. self.__operations = {} def delete_job(self, jobid): self.__operations['delete_job'] = [jobid] def is_cluster_deallocated(self, dummy): return False def wasOperationPerformed(self, operation, args): if self.__operations.has_key(operation): actualArgs = self.__operations[operation] for arg in actualArgs: if arg not in args: break else: return True return False
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -