Exemple #1
0
 def __init__(self):
     self.logger= Logger.getLogger()
     self.tid = 0
     self.queue = Queue.Queue()
     self.sessionId = str(uuid.uuid1())
     self.queue.put(ResultSender.parseMessage(msg_type='sessiondata',session_id=self.sessionId))
     Sender(self.queue).start()
Exemple #2
0
 def __init__(self,options=None):
     '''
     init looger,builder,and DeviceManager before testing start
     '''
     self.logger = Logger.getLogger()
     self.builder = TestBuilder.getBuilder(options)
     self.runner = TestRunner.getRunner(self.builder)
Exemple #3
0
 def __init__(self, context=None, case=None):
     self.logger = Logger.getLogger()
     self.assertion = assertion()
     self.logger.debug('init store')
     self.store = store(context, case)
     self.device = DeviceManager.getInstance().getDevice()
     self._isRecord = context.isRecording()
     self._checkpoint = -1
Exemple #4
0
 def request(task):
     logger = Logger.getLogger()
     url = task['url']
     content_type = task['content_type']
     method = task['method']
     postdata = task['data']
     logger.debug('url:'+url+' type:'+content_type+' method:'+method)        
     #SendUtils._doCommonRequest(url=_url,postdata=_data,content_type='image/png',method='PUT')
     SendUtils._doCommonRequest(url,postdata,content_type,method)
Exemple #5
0
 def __init__(self):
     self.logger = Logger.getLogger()
     self.tid = 0
     self.queue = Queue.Queue()
     self.sessionId = str(uuid.uuid1())
     self.queue.put(
         ResultSender.parseMessage(msg_type='sessiondata',
                                   session_id=self.sessionId))
     Sender(self.queue).start()
Exemple #6
0
 def __init__(self, serial=None):
     '''context is context of current running test session.'''
     #if not defined, use the system envrionment value
     if serial is None:
         self.serial = _getSerial()
     else:
         self.serial = serial
     self.logger = Logger.getLogger()
     self._state = DEVICE_DISCONNECTED
     self.logger.debug('init device instance!')
Exemple #7
0
 def request(task):
     logger = Logger.getLogger()
     url = task['url']
     content_type = task['content_type']
     method = task['method']
     postdata = task['data']
     logger.debug('url:' + url + ' type:' + content_type + ' method:' +
                  method)
     #SendUtils._doCommonRequest(url=_url,postdata=_data,content_type='image/png',method='PUT')
     SendUtils._doCommonRequest(url, postdata, content_type, method)
Exemple #8
0
 def __init__(self, serial=None):
     '''context is context of current running test session.'''
     #if not defined, use the system envrionment value
     if serial is None:
         self.serial = _getSerial()
     else:
         self.serial = serial
     self.logger = Logger.getLogger()
     self._state = DEVICE_DISCONNECTED
     self.logger.debug('init device instance!')
Exemple #9
0
    def _doCommonRequest(url, postdata, content_type, method):
        '''
           Transmit a data to remote server using HTTP(GET,POST,PUT).
           and got a response which specified by JSON formate : "{"results":"content"}" from remote server.
           @poastdata String of json formate or the binary data of zip,png
           @return dictionary of response
           @Exception URLError.
        '''
        logger = Logger.getLogger()
        #user define exception
        errorcode = {
            'unspecified': 31,
            'feedback_ok': 32,
            'feedback_fail': 33,
            'json_error_attr': 34,
            'json_error_format': 35
        }
        f = None
        try:
            logger.debug('init request!')
            request = urllib2.Request(url)
            if method == 'POST':
                postdata['token'] = '1122334455667788'
                jsonstr = minjson.write(postdata)
                logger.debug(jsonstr)
                request.add_data(jsonstr)
            else:
                request.add_header('token', '1122334455667788')
                request.add_data(postdata)
            #the content type of data application/json application/zip image/png
            logger.debug('add content_type!')
            request.add_header('Content-Type', content_type)
            #the content type of feedback from server
            logger.debug('add Accept!')
            request.add_header('Accept', 'application/json')
            #the length of data
            #logger.debug('add Content-Length!')
            #request.add_header("Content-Length", str(len(postdata)))
            #the http request type GET POST PUT
            logger.debug('add method!')
            request.get_method = lambda: method
            urllib2.socket.setdefaulttimeout(10)
            logger.debug('open the url!')
            f = urllib2.urlopen(request)
            json_feedback = f.read()
            dic = eval(json_feedback)
            #key = list(dic).pop()
            #value = str(dic[key])
            return dic

        except Exception, e:
            #all exception.urllib2.URLError: <urlopen error timed out>...
            logger.debug('Do http request, got error!')
            return ''
Exemple #10
0
    def _doCommonRequest(url,postdata,content_type,method):
        '''
           Transmit a data to remote server using HTTP(GET,POST,PUT).
           and got a response which specified by JSON formate : "{"results":"content"}" from remote server.
           @poastdata String of json formate or the binary data of zip,png
           @return dictionary of response
           @Exception URLError.
        '''
        logger = Logger.getLogger()
        #user define exception
        errorcode = {'unspecified':31,
                     'feedback_ok':32,
                     'feedback_fail':33,
                     'json_error_attr':34,
                     'json_error_format':35
                     }
        f = None
        try:
            logger.debug('init request!')
            request = urllib2.Request(url)
            if method == 'POST':
                postdata['token'] = '1122334455667788'
                jsonstr = minjson.write(postdata)
                logger.debug(jsonstr)
                request.add_data(jsonstr)
            else:
                request.add_header('token','1122334455667788')
                request.add_data(postdata)                
            #the content type of data application/json application/zip image/png
            logger.debug('add content_type!')            
            request.add_header('Content-Type',content_type)
            #the content type of feedback from server
            logger.debug('add Accept!')
            request.add_header('Accept', 'application/json')
            #the length of data
            #logger.debug('add Content-Length!')
            #request.add_header("Content-Length", str(len(postdata)))
            #the http request type GET POST PUT
            logger.debug('add method!')
            request.get_method = lambda: method
            urllib2.socket.setdefaulttimeout(10)
            logger.debug('open the url!')
            f = urllib2.urlopen(request)
            json_feedback = f.read()
            dic = eval(json_feedback)
            #key = list(dic).pop()
            #value = str(dic[key])
            return dic

        except Exception,e:
            #all exception.urllib2.URLError: <urlopen error timed out>...
            logger.debug('Do http request, got error!')
            return ''
Exemple #11
0
class testWorker:
    """
    provides the executing ability of each command-line in TestCase
    """
    def __init__(self, context=None, case=None):
        self.logger = Logger.getLogger()
        self.assertion = assertion()
        self.logger.debug('init store')
        self.store = store(context, case)
        self.device = DeviceManager.getInstance().getDevice()
        self._isRecord = context.isRecording()
        self._checkpoint = -1
Exemple #12
0
 def __init__(self, context=None, case=None):    
     self.logger = Logger.getLogger()    
     self.logger.debug('init store instance!')
     if (context is None) or (case is None):
         self.outdirs = __DEFAULT_PATH
         self.istesting = True
     else:
         self.logger.debug('init store for testcase!!!')
         self.workspace = context.getWorkspace()
         self.istesting = context.isTesting()
         self.starttime = context.getStartTime()
         self.case = case
         self.outdirs = self.__createOutDirs()
Exemple #13
0
class store:
    """Provides the access ability to the case result data store"""
    def __init__(self, context=None, case=None):
        self.logger = Logger.getLogger()
        self.logger.debug('init store instance!')
        if (context is None) or (case is None):
            self.outdirs = __DEFAULT_PATH
            self.istesting = True
        else:
            self.logger.debug('init store for testcase!!!')
            self.workspace = context.getWorkspace()
            self.istesting = context.isTesting()
            self.starttime = context.getStartTime()
            self.case = case
            self.outdirs = self.__createOutDirs()
Exemple #14
0
def _sortTestCaseResult(info):
    '''Sort test case result from "all" folder.
    Keyword arguments:
    info -- tuple of test case object description.(should not be none)
     '''
    logger=Logger.getLogger()
    #logger.debug('copy failures result to fail or error folder')
    #logger.debug('name:'+info[1][1]._testMethodName+' time:'+info[1][1].starttime)
    if not info[0] in ['addFailure','addError']:
        return 
    case_name = '%s.%s' %(type( info[1][1]).__name__,  info[1][1]._testMethodName)
    case_starttime = info[1][1].starttime
    testcase_result_folder = '%s-%s'%(case_name,case_starttime)
    result_path = os.path.join(TestBuilder.getBuilder().getWorkspace(),'result-%s'%TestBuilder.getBuilder().getStartTime())
    src =  os.path.join(os.path.join(result_path,'all'),testcase_result_folder)
    if info[0] == 'addFailure':
        #logger.debug('distribute add failed')
        dest = os.path.join(os.path.join(result_path,'fail',testcase_result_folder))
    elif info[0] == 'addError':
        #logger.debug('distribute add error:')
        dest = os.path.join(os.path.join(result_path,'error',testcase_result_folder))
    if (src is not None and dest is not None):
        _copyFilesToOtherFolder(src, dest)
        _saveLog(dest)
Exemple #15
0
 def __init__(self, stream=None, descriptions=None, verbosity=None):
     TestResult.__init__(self)
     self.logger = Logger.getLogger()
Exemple #16
0
 def __init__(self, context=None):
     self.logger = Logger.getLogger()
     self.context = context
Exemple #17
0
 def __init__(self, q):
     threading.Thread.__init__(self)
     self.task_queue = q
     self.logger = Logger.getLogger()
Exemple #18
0
    def parseMessage(msg_type=None,
                     session_id=None,
                     caseresult_id=None,
                     test_info=None,
                     file_path=None):
        logger = Logger.getLogger()
        if msg_type == 'sessiondata':
            logger.debug(
                '********************session request***********************')
            url = SendUtils._session_create_url % session_id
            sessionStarttime = TestBuilder.getBuilder().getStartTime()
            deviceId = DeviceManager.getInstance().getDevice().getDeviceId()
            properties = DeviceManager.getInstance().getDevice().getDeviceInfo(
            )
            logger.debug(
                '********************session starttime*********************' +
                sessionStarttime)
            postData = {
                'planname': 'plan',
                'starttime': sessionStarttime,
                'deviceid': deviceId,
                'deviceinfo': properties
            }
            contentType = 'application/json'
            method = 'POST'
            return {
                'url': url,
                'data': postData,
                'content_type': contentType,
                'method': method
            }
        if msg_type == 'caseresult':
            logger.debug(
                '********************case result*********************')
            sid = session_id
            tid = caseresult_id
            info = test_info
            path = file_path
            if info:
                if info[0] == 'startTest':
                    logger.debug(
                        '********************start test*********************')
                    url = (SendUtils._caseresult_create_url) % (sid, tid)
                    caseName = info[1][1]._testMethodName
                    startTime = time.strftime('%Y-%m-%d %H:%M:%S  ',
                                              time.localtime(time.time()))
                    postData = {'casename': caseName, 'starttime': startTime}
                    contentType = 'application/json'
                    method = 'POST'
                    return [{
                        'url': url,
                        'data': postData,
                        'content_type': contentType,
                        'method': method
                    }]
                elif info[0] == 'addSuccess':
                    logger.debug(
                        '********************add success***********************'
                    )
                    url = (SendUtils._caseresult_update_url) % (sid, tid)
                    _time = time.strftime('%Y-%m-%d %H:%M:%S  ',
                                          time.localtime(time.time()))
                    postData = {'result': 'pass', 'time': _time}
                    contentType = 'application/json'
                    method = 'POST'
                    return [{
                        'url': url,
                        'data': postData,
                        'content_type': contentType,
                        'method': method
                    }]
                elif info[0] == 'addFailure':
                    logger.debug(
                        '********************add failure***********************'
                    )
                    resultUrl = (SendUtils._caseresult_update_url) % (sid, tid)
                    resultTime = time.strftime('%Y-%m-%d %H:%M:%S  ',
                                               time.localtime(time.time()))
                    resultPostData = {'result': 'fail', 'time': resultTime}
                    resultContentType = 'application/json'
                    resultMethod = 'POST'
                    resultRequest = {
                        'url': resultUrl,
                        'data': resultPostData,
                        'content_type': resultContentType,
                        'method': resultMethod
                    }
                    #log file
                    logUrl = (SendUtils._upload_file_url) % (sid, tid)
                    logfolder = os.path.join(
                        info[1][1].worker.store.getFailDir(), 'log')
                    zipName = '%s_%s.%s' % (sid, tid, 'zip')
                    zipFolder(logfolder, zipName)
                    logPostData = _openFile(zipName)
                    logContentType = 'application/zip'
                    logMethod = 'PUT'
                    fileRequest = {
                        'url': logUrl,
                        'data': logPostData,
                        'content_type': logContentType,
                        'method': logMethod
                    }
                    return [resultRequest, fileRequest]

                elif info[0] == 'addError':
                    logger.debug(
                        '********************add error***********************')
                    resultUrl = (SendUtils._caseresult_update_url) % (sid, tid)
                    resultTime = time.strftime('%Y-%m-%d %H:%M:%S  ',
                                               time.localtime(time.time()))
                    resultPostData = {'result': 'error', 'time': resulTime}
                    resultContentType = 'application/json'
                    resultMethod = 'POST'
                    resultRequest = {
                        'url': resultUrl,
                        'data': resultPostData,
                        'content_type': resultContentType,
                        'method': resultMethod
                    }
                    #log file
                    #logUrl = (SendUtils._upload_file_url) % (sid,tid)
                    #logfolder = os.path.join(info[1][1].device.workspace_result_fail,'log')
                    #zipName = '%s_%s.%s'%(sid,tid,'zip')
                    #zipFolder(logfolder,_zipname)
                    #logPostData = _openFile(_zipname)
                    #logContentType = 'application/zip'
                    #logMethod = 'PUT'
                    #fileRequest = {'url':logUrl,'data':logPostData,'content_type':logContentType,'method':logMethod}
                    return [resultRequest]
            elif file_path:
                logger.debug(
                    '********************upload snapshot***********************'
                )
                sid = session_id
                tid = caseresult_id
                url = (SendUtils._upload_file_url) % (sid, tid)
                postData = _openFile(file_path)
                contentType = 'image/png'
                method = 'PUT'
                return [{
                    'url': url,
                    'data': postData,
                    'content_type': contentType,
                    'method': method
                }]
Exemple #19
0
 def __init__(self,q):
     threading.Thread.__init__(self)
     self.task_queue = q
     self.logger = Logger.getLogger()
Exemple #20
0
 def __init__(self, context=None):
     self.logger = Logger.getLogger()
     self.context = context
Exemple #21
0
 def __init__(self, stream=None, descriptions=None, verbosity=None):
     TestResult.__init__(self)
     self.logger = Logger.getLogger()
Exemple #22
0
 def __init__(self):
     self._devices = list()
     self.logger = Logger.getLogger()
     self.logger.debug('init DeviceManager instance!')
Exemple #23
0
 def getLogger(self):
     '''Return a looger instance'''
     #self.__logger = Logger.getLogger('device.log',"INFO","DEBUG")
     self.__logger = Logger.getLogger()
     return self.__logger
Exemple #24
0
 def __init__(self):
     self._devices = list()
     self.logger = Logger.getLogger()
     self.logger.debug('init DeviceManager instance!')
Exemple #25
0
 def getLogger(self):
     '''Return a looger instance'''
     #self.__logger = Logger.getLogger('device.log',"INFO","DEBUG")
     self.__logger = Logger.getLogger()
     return self.__logger
Exemple #26
0
 def setUp(self):
     super(TestCaseBase, self).setUp()
     self.tid = str(uuid.uuid1()) 
     self.starttime = time.strftime('%Y.%m.%d-%H.%M.%S', time.localtime(time.time()))
     self.worker = testWorker(TestBuilder.getBuilder(), self)
     self.logger = Logger.getLogger()
Exemple #27
0
    def parseMessage(msg_type=None,session_id=None,caseresult_id=None,test_info=None,file_path=None):
        logger = Logger.getLogger()
        if msg_type == 'sessiondata':
            logger.debug('********************session request***********************')
            url = SendUtils._session_create_url % session_id
            sessionStarttime = TestBuilder.getBuilder().getStartTime()
            deviceId = DeviceManager.getInstance().getDevice().getDeviceId()
            properties = DeviceManager.getInstance().getDevice().getDeviceInfo()
            logger.debug('********************session starttime*********************'+sessionStarttime)
            postData = {'planname':'plan','starttime':sessionStarttime,'deviceid':deviceId,'deviceinfo':properties}
            contentType = 'application/json'
            method = 'POST'            
            return {'url':url,'data':postData,'content_type':contentType,'method':method}
        if msg_type == 'caseresult':
            logger.debug('********************case result*********************')
            sid = session_id
            tid = caseresult_id
            info = test_info
            path = file_path
            if info:
                if info[0] == 'startTest':
                    logger.debug('********************start test*********************')
                    url = (SendUtils._caseresult_create_url) % (sid,tid)
                    caseName = info[1][1]._testMethodName
                    startTime = time.strftime('%Y-%m-%d %H:%M:%S  ', time.localtime(time.time()))
                    postData = {'casename':caseName,'starttime':startTime}
                    contentType = 'application/json'
                    method = 'POST'            
                    return [{'url':url,'data':postData,'content_type':contentType,'method':method}]
                elif info[0] == 'addSuccess':
                    logger.debug('********************add success***********************')
                    url = (SendUtils._caseresult_update_url) % (sid,tid)
                    _time = time.strftime('%Y-%m-%d %H:%M:%S  ', time.localtime(time.time()))
                    postData = {'result':'pass','time':_time}
                    contentType = 'application/json'
                    method = 'POST'
                    return [{'url':url,'data':postData,'content_type':contentType,'method':method}]
                elif info[0] == 'addFailure':
                    logger.debug('********************add failure***********************')
                    resultUrl = (SendUtils._caseresult_update_url) % (sid,tid)
                    resultTime = time.strftime('%Y-%m-%d %H:%M:%S  ', time.localtime(time.time()))
                    resultPostData = {'result':'fail','time':resultTime}
                    resultContentType = 'application/json'
                    resultMethod = 'POST'
                    resultRequest = {'url':resultUrl,'data':resultPostData,'content_type':resultContentType,'method':resultMethod}
                    #log file
                    logUrl = (SendUtils._upload_file_url) % (sid,tid)
                    logfolder = os.path.join(info[1][1].worker.store.getFailDir(),'log')
                    zipName = '%s_%s.%s'%(sid,tid,'zip')
                    zipFolder(logfolder,zipName)
                    logPostData = _openFile(zipName)
                    logContentType = 'application/zip'
                    logMethod = 'PUT'
                    fileRequest = {'url':logUrl,'data':logPostData,'content_type':logContentType,'method':logMethod}
                    return [resultRequest,fileRequest]

                elif info[0] == 'addError':
                    logger.debug('********************add error***********************')
                    resultUrl = (SendUtils._caseresult_update_url) % (sid,tid)
                    resultTime = time.strftime('%Y-%m-%d %H:%M:%S  ', time.localtime(time.time()))
                    resultPostData = {'result':'error','time':resulTime}
                    resultContentType = 'application/json'
                    resultMethod = 'POST'
                    resultRequest = {'url':resultUrl,'data':resultPostData,'content_type':resultContentType,'method':resultMethod}
                    #log file
                    #logUrl = (SendUtils._upload_file_url) % (sid,tid)
                    #logfolder = os.path.join(info[1][1].device.workspace_result_fail,'log')
                    #zipName = '%s_%s.%s'%(sid,tid,'zip')
                    #zipFolder(logfolder,_zipname)
                    #logPostData = _openFile(_zipname)
                    #logContentType = 'application/zip'
                    #logMethod = 'PUT'
                    #fileRequest = {'url':logUrl,'data':logPostData,'content_type':logContentType,'method':logMethod}
                    return [resultRequest]
            elif file_path:
                logger.debug('********************upload snapshot***********************')
                sid = session_id
                tid = caseresult_id
                url = (SendUtils._upload_file_url) % (sid,tid)
                postData = _openFile(file_path)
                contentType = 'image/png'
                method = 'PUT'
                return [{'url':url,'data':postData,'content_type':contentType,'method':method}]