Esempio n. 1
0
    def load(self):
        LOG.info("Loading from %s" % self.directoryName)
        config = DOUGConfigParser()
        config.read([os.path.join(self.directoryName, '.info')])
        self.info = config

        if config.has_section('general'):
            self.name = config.get('general', 'name')
        else:
            config.add_section('general')

        if config.has_section('files'):
            types = config.get('files', 'types', default="")
            types = types.split(",")
            types = filter(bool, types) # filter out empty strings
            types = map(lambda s: map(str.strip, s.split(':')), types)
            
            for filename, filetype in types:
                self.setFileType(filename, filetype)
        else:
            config.add_section('files')
Esempio n. 2
0
def createTest(testdir, members):
    del members[testtar.TEST_CONF]
    testConfigFile = tarFile.extractfile("/".join([testdir.name, testtar.TEST_CONF]))
    testConfigContent = testConfigFile.read()
    del members[testtar.RESULT_CONF]
    testResultFile = tarFile.extractfile("/".join([testdir.name, testtar.RESULT_CONF]))
    testResultContent = testResultFile.read()

    config = DOUGConfigParser()
    config.addConfigContents(testConfigContent)
    config.addConfigContents(testResultContent)
    
    # store test times and status
    testname = config.get("test", "name")
    startTime = float(config.get("test", "starttime"))
    stopTime = float(config.get("test", "stoptime"))

    ID = store.insertTest(testname, datetime.fromtimestamp(startTime), config)
    store.updateTestStop(ID, datetime.fromtimestamp(stopTime))
    status = config.get("doug-result", "status").upper()
    status = testmysql.TestStatus.STRS.index(status)
    store.updateTestStatus(ID, status)
    
    # store error
    if members.has_key(testtar.EXCEPTION_FILE):
        del members[testtar.EXCEPTION_FILE]
        exceptionFile = tarFile.extractfile("/".join([testdir.name, testtar.EXCEPTION_FILE]))
        exc = pickle.load(exceptionFile)
        store.updateTestError(ID, str(exc))

    # store profile info
    if config.has_section('doug-profile'):
        store.updateTestProfileInfo(ID, config)

    # left files should be stored to database
    for name in members.keys():
        file = tarFile.extractfile("/".join([testdir.name, name]))
        fileContent = file.read()
        store.insertTestFileContent(ID, name, fileContent)