예제 #1
0
 def __init__(self, test_uri):
     """
     Constractor
     @param test_uri: Test Uri
     """
     self.test_uri = test_uri
     try:
         self.red = InspectingResourceExpertDroid(self.test_uri)
         self.result = ""
         self.done = False
         self.groups = []
         logger = logging.getLogger()
         logger.setLevel(logging.DEBUG)
         if self.red.res_complete:
             self.result = self._generate_output_xml(test_uri).toprettyxml()
         else:
             error_string = ""
             if self.red.res_error['desc'] == nbhttp.error.ERR_CONNECT[
                     'desc']:
                 error_string = "Could not connect to the server (%s)" % self.red.res_error.get(
                     'detail', "unknown")
             elif self.red.res_error['desc'] == nbhttp.error.ERR_URL[
                     'desc']:
                 error_string = self.red.res_error.get(
                     'detail', "RED can't fetch that URL.")
             elif self.red.res_error[
                     'desc'] == nbhttp.error.ERR_READ_TIMEOUT['desc']:
                 error_string = self.red.res_error['desc']
             elif self.red.res_error[
                     'desc'] == nbhttp.error.ERR_HTTP_VERSION['desc']:
                 error_string = "<code>%s</code> isn't HTTP." % e(
                     self.red.res_error.get('detail', '')[:20])
             else:
                 raise AssertionError, "Unidentified incomplete response error."
             self.result = self._generate_error_xml(
                 error_string).toprettyxml()
     except:
         import traceback
         logging.error(traceback.format_exc())
         self.result = """<?xml version="1.0" ?>