⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testtypes.py

📁 HADOOP 0.18.0安装源代码头文件
💻 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, os, sys, re, threading, timemyDirectory = os.path.realpath(sys.argv[0])rootDirectory   = re.sub("/testing/.*", "", myDirectory)sys.path.append(rootDirectory)from testing.lib import BaseTestSuiteexcludes = ['']import tempfile, shutil, getpass, randomfrom hodlib.Common.types import typeValidator# All test-case classes should have the naming convention test_.*class test_typeValidator(unittest.TestCase):  def setUp(self):    self.originalDir = os.getcwd()    self.validator = typeValidator(self.originalDir)    self.tempDir = tempfile.mkdtemp(dir='/tmp/hod-%s' % getpass.getuser(),                                    prefix='test_Types_typeValidator_tempDir')    self.tempFile = tempfile.NamedTemporaryFile(dir=self.tempDir)    # verification : error strings    self.errorStringsForVerify = {                          'pos_int' : 0,                          'uri' : '%s is an invalid uri',                          'directory' : 0,                          'file' : 0,                        }    # verification : valid vals    self.verifyValidVals = [                            ('pos_int', 0),                            ('pos_int', 1),                            ('directory', self.tempDir),                            ('directory', '/tmp/hod-%s/../../%s' % \                                    (getpass.getuser(), self.tempDir)),                            ('file', self.tempFile.name),                            ('file', '/tmp/hod-%s/../../%s' % \                                    (getpass.getuser(), self.tempFile.name)),                            ('uri', 'file://localhost/' + self.tempDir),                            ('uri', 'file:///' + self.tempDir),                            ('uri', 'file:///tmp/hod-%s/../../%s' % \                                    (getpass.getuser(), self.tempDir)),                            ('uri', 'file://localhost/tmp/hod-%s/../../%s' % \                                    (getpass.getuser(), self.tempDir)),                            ('uri', 'http://hadoop.apache.org/core/'),                            ('uri', self.tempDir),                            ('uri', '/tmp/hod-%s/../../%s' % \                                    (getpass.getuser(), self.tempDir)),                           ]    # generate an invalid uri    randomNum = random.random()    while os.path.exists('/%s' % randomNum):      # Just to be sure :)      randomNum = random.random()    invalidUri = 'file://localhost/%s' % randomNum    # verification : invalid vals    self.verifyInvalidVals = [                              ('pos_int', -1),                              ('uri', invalidUri),                              ('directory', self.tempFile.name),                              ('file', self.tempDir),                             ]    # normalization : vals    self.normalizeVals = [                            ('pos_int', 1, 1),                            ('pos_int', '1', 1),                            ('directory', self.tempDir, self.tempDir),                            ('directory', '/tmp/hod-%s/../../%s' % \                                  (getpass.getuser(), self.tempDir),                                                       self.tempDir),                            ('file', self.tempFile.name, self.tempFile.name),                            ('file', '/tmp/hod-%s/../../%s' % \                                    (getpass.getuser(), self.tempFile.name),                                                         self.tempFile.name),                            ('uri', 'file://localhost' + self.tempDir,                                   'file://' + self.tempDir),                            ('uri', 'file://127.0.0.1' + self.tempDir,                                   'file://' + self.tempDir),                            ('uri', 'http://hadoop.apache.org/core',                                  'http://hadoop.apache.org/core'),                            ('uri', self.tempDir, self.tempDir),                            ('uri', '/tmp/hod-%s/../../%s' % \                                  (getpass.getuser(), self.tempDir),                                                       self.tempDir),                         ]    pass  # All testMethods have to have their names start with 'test'  def testnormalize(self):    for (type, originalVal, normalizedVal) in self.normalizeVals:      # print type, originalVal, normalizedVal,\      #                          self.validator.normalize(type, originalVal)      assert(self.validator.normalize(type, originalVal) == normalizedVal)    pass  def test__normalize(self):    # Special test for functionality of private method __normalizedPath    tmpdir = tempfile.mkdtemp(dir=self.originalDir) #create in self.originalDir    oldWd = os.getcwd()    os.chdir('/')    tmpdirName = re.sub(".*/","",tmpdir)    # print re.sub(".*/","",tmpdirName)    # print os.path.join(self.originalDir,tmpdir)    (type, originalVal, normalizedVal) = \                                    ('file', tmpdirName, \                                    os.path.join(self.originalDir,tmpdirName))    assert(self.validator.normalize(type, originalVal) == normalizedVal)    os.chdir(oldWd)    os.rmdir(tmpdir)    pass      def testverify(self):    # test verify method    # test valid vals    for (type,value) in self.verifyValidVals:      valueInfo = { 'isValid' : 0, 'normalized' : 0, 'errorData' : 0 }      valueInfo = self.validator.verify(type,value)      # print type, value, valueInfo      assert(valueInfo['isValid'] == 1)    # test invalid vals    for (type,value) in self.verifyInvalidVals:      valueInfo = { 'isValid' : 0, 'normalized' : 0, 'errorData' : 0 }      valueInfo = self.validator.verify(type,value)      # print type, value, valueInfo      assert(valueInfo['isValid'] == 0)      if valueInfo['errorData'] != 0:        # if there is any errorData, check        assert(valueInfo['errorData'] == \                                      self.errorStringsForVerify[type] % value)    pass  def tearDown(self):    self.tempFile.close()    if os.path.exists(self.tempDir):      shutil.rmtree(self.tempDir)    passclass TypesTestSuite(BaseTestSuite):  def __init__(self):    # suite setup    BaseTestSuite.__init__(self, __name__, excludes)    pass    def cleanUp(self):    # suite tearDown    passdef RunTypesTests():  # modulename_suite  suite = TypesTestSuite()  testResult = suite.runTests()  suite.cleanUp()  return testResultif __name__ == "__main__":  RunTypesTests()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -