def __init__(self, server): if server == 'mob': self.host = gconst.HOST elif server == 'and': self.host = gconst.WELL else: print >> sys.stderr, 'Error: Invalid host URL' sys.exit(1) # Get the authentication token self.TOKEN = HTTP.get_token(self.host, gconst.USERNAME, gconst.PASSWORD) # use one dictionary to construct all the test cases arguments # use another dictionary to indicate whether it is valid or error # both dictionary are one to one corresponding # TODO: add 'a'*(TOKEN_LIMIT+INCR) and 'a'*(CLIENT_LIMIT+INCR) later when you have reasonable boundary self.arg = {'auth_token': [self.TOKEN, gconst.MISS, '', gconst.RAND_STR, 'a'*TOKEN_LIMIT, 'auth_token1'],\ 'client': ['curl', '', 'a'*CLIENT_LIMIT, 'a'*(CLIENT_LIMIT+1), gconst.MISS, 'client1']} self.arg_msg = {'auth_token': ['v', gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL],\ 'client': ['v', 'v', 'v', gconst.CLT_TOO_LONG, gconst.AUTH_FAIL, gconst.AUTH_FAIL]} self.http = HTTP.http_res() self.http.set_url(self.host+gconst.USER_INFO_READ) self.arg_pass_in = {} self.arg_pass_in_msg = [] self.total_case = 0 # keep track of the total number of test cases self.unexpect_case = 0 # keep track of the total number of unexpected cases self.invalid_case_id_list = [] # keep track of the invalid case ID self.succ_report = [] # keep track of the passed cases self.err_report = [] # keep track of the unexpected cases
def __init__(self, server): if server == 'mob': # moblizing server self.host = gconst.HOST elif server == 'and': # andwellness server self.host = gconst.WELL else: print >> sys.stderr, 'Error: Invalid host URL' sys.exit(1) # Get the authentication token self.TOKEN = HTTP.get_token(self.host, gconst.USERNAME, gconst.PASSWORD) # Four dictionaries, two for valid cases, two for invalid cases. # The two with actual value has one-to-one correspondency with # the other two dicts which contains tags to indicate the expected result self.valid_arg = {'auth_token': [self.TOKEN],\ 'client': ['curl', '', 'a'*CLIENT_LIMIT],\ 'running_state': ['running', 'stopped'],\ 'privacy_state': ['private', 'shared'],\ 'class_urn_list': [gconst.CLS_URN, gconst.CLS_URN_LIST_COMMA],\ 'xml': [(pycurl.FORM_FILE, XML_FILE)],\ 'description': ['', gconst.MISS, 'a'*DES_LIMIT]} self.valid_arg_msg = {'auth_token': ['v'],\ 'client': ['v', 'v', 'v'],\ 'running_state': ['v', 'v'],\ 'privacy_state': ['v', 'v'],\ 'class_urn_list': ['v', 'v'],\ 'xml': ['v'],\ 'description': ['v', 'v', 'v']} # in order to reduce the test cases, I combine the '' with gconst.MISS, since server treat them equally # Add boundary case for 'running_state', 'privacy_state', self.invalid_arg = {'auth_token': [gconst.MISS, gconst.RAND_STR, 'a'*TOKEN_LIMIT, 'auth_token1'],\ 'client': [gconst.MISS, 'client1', 'a'*(CLIENT_LIMIT+1)],\ 'running_state': ['', gconst.RAND_STR, gconst.MISS, 'a'*RUN_STATE_LIMIT, 'running_state1'],\ 'privacy_state': ['', gconst.RAND_STR, gconst.MISS, 'a'*PRI_STATE_LIMIT, 'privacy_state1'],\ 'class_urn_list': [gconst.RAND_STR, gconst.MISS, gconst.CLS_UNKNOWN, 'a'*CLS_LIMIT, 'class_urn_list1'],\ 'xml': [(pycurl.FORM_FILE, XML_PDF), (pycurl.FORM_FILE, XML_DOC), (pycurl.FORM_FILE, XML_EXE)],\ 'description':['a'*(DES_LIMIT+INCR)]} self.invalid_arg_msg = {'auth_token': [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL],\ 'client': [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.CLT_TOO_LONG],\ 'running_state': [gconst.INVALID_RUN_STATE, gconst.INVALID_RUN_STATE,\ gconst.INVALID_RUN_STATE, gconst.INVALID_RUN_STATE, gconst.INVALID_RUN_STATE],\ 'privacy_state': [gconst.INVALID_PRI_STATE, gconst.INVALID_PRI_STATE,\ gconst.INVALID_PRI_STATE, gconst.INVALID_PRI_STATE, gconst.INVALID_PRI_STATE],\ 'class_urn_list': [gconst.INVALID_CLS_URN, gconst.INVALID_CLS_URN, \ gconst.INVALID_CLS_URN, gconst.INVALID_CLS_URN, gconst.INVALID_CLS_URN],\ 'xml': [gconst.INVALID_XML, gconst.INVALID_XML, gconst.INVALID_XML],\ 'description': ['v']} self.para_name_list = ['auth_token', 'client', 'running_state', 'privacy_state', 'class_urn_list', 'xml', 'description'] self.http = HTTP.http_res() self.http.set_url(self.host+gconst.CAMP_CRET) self.arg_pass_in = {} self.arg_pass_in_msg = [] self.total_case = 0 # keep track of the total number of test cases self.unexpect_case = 0 # keep track of the total number of unexpected cases self.invalid_case_id_list = [] # keep track of the invalid case ID self.succ_report = [] # keep track of the passed cases self.err_report = [] # keep track of the unexpected cases
def __init__(self, server): if server == 'mob': self.host = gconst.HOST elif server == 'and': self.host = gconst.WELL else: print >> sys.stderr, 'Error: Invalid host URL' sys.exit(1) # Get the authentication token self.TOKEN = HTTP.get_token(self.host, gconst.USERNAME, gconst.PASSWORD) # use one dictionary to construct all the valid/invalid test cases arguments # use another dictionary to indicate whether it is valid or error # both dictionary are one to one corresponding self.valid_arg = {'auth_token': [self.TOKEN],\ 'client': ['curl', '', 'a'*CLIENT_LIMIT],\ 'campaign_urn_list': ['', gconst.MISS, gconst.CAMP_URN, gconst.CAMP_URN_LIST_COMMA, 'campaign_urn_list1'],\ 'class_urn_list': ['', gconst.MISS, gconst.CLS_URN, gconst.CLS_URN_LIST_COMMA, 'class_urn_list1']} self.valid_arg_msg = {'auth_token': ['v'],\ 'client': ['v', 'v', 'v'],\ 'campaign_urn_list': ['v', 'v', 'v', 'v', 'v'],\ 'class_urn_list': ['v', 'v', 'v', 'v', 'v']} # TODO: add 'a'*(CLIENT_LIMIT+INCR), 'a'*(CAMP_LIMIT+INCR), 'a'*(CLS_LIMIT+INCR) when you have reasonable limit self.invalid_arg = {'auth_token': [gconst.MISS, '', gconst.RAND_STR, 'a'*TOKEN_LIMIT, 'auth_token1'],\ 'client': [gconst.MISS, 'client1', 'a'*(CLIENT_LIMIT+1)],\ 'campaign_urn_list': [gconst.RAND_STR, 'a'*CAMP_LIMIT],\ 'class_urn_list': [gconst.RAND_STR, 'a'*CLS_LIMIT]} # TODO: add gconst.AUTH_FAIL for 'client', 'campaign_urn_list' and 'class_urn_list' when you have reasonable limit self.invalid_arg_msg = {'auth_token': [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL],\ 'client': [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.CLT_TOO_LONG],\ 'campaign_urn_list': [gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN],\ 'class_urn_list': [gconst.INVALID_CLS_URN, gconst.INVALID_CLS_URN]} self.para_name_list = ['auth_token', 'client', 'campaign_urn_list', 'class_urn_list'] self.http = HTTP.http_res() self.http.set_url(self.host+gconst.USER_READ) self.arg_pass_in = {} self.arg_pass_in_msg = [] self.total_case = 0 # keep track of the total number of test cases self.unexpect_case = 0 # keep track of the total number of unexpected cases self.invalid_case_id_list = [] # keep track of the invalid case ID self.succ_report = [] # keep track of the passed cases self.err_report = [] # keep track of the unexpected cases
def __init__(self, server): if server == 'mob': # moblizing server self.host = gconst.HOST elif server == 'and': # andwellness server self.host = gconst.WELL else: print >> sys.stderr, 'Error: Invalid host URL' sys.exit(1) # Get the authentication token self.TOKEN = HTTP.get_token(self.host, gconst.USERNAME, gconst.PASSWORD) # Four dictionaries, two for valid cases, two for invalid cases. # The two with actual value has one-to-one correspondency with # the other two dicts which contains tags to indicate the expected result self.valid_arg = {'auth_token': [self.TOKEN],\ 'client': ['curl', '', 'a'*CLIENT_LIMIT],\ 'campaign_urn': [gconst.CAMP_URN, gconst.CAMP_URN_CAP]} self.valid_arg_msg = {'auth_token': ['v'],\ 'client': ['v', 'v', 'v'],\ 'campaign_urn': ['v', 'v']} # TODO: currently gconst.UNKNOWN and gconst.CAMP_URN_LIST_COMMA has higher priority than gconst.AUTH_FAIL # should fix it later on server self.invalid_arg = {'auth_token': [gconst.MISS, gconst.RAND_STR, 'a'*TOKEN_LIMIT, 'auth_token1'],\ 'client': [gconst.MISS, 'client1', 'a'*(CLIENT_LIMIT+1)],\ 'campaign_urn': ['', gconst.MISS, gconst.CAMP_URN_LIST_COMMA, 'a'*CAMP_LIMIT, 'campaign_urn1', gconst.CLS_UNKNOWN]} self.invalid_arg_msg = {'auth_token': [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL],\ 'client': [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.CLT_TOO_LONG],\ 'campaign_urn': [gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN,\ gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN]} self.para_name_list = ['auth_token', 'client', 'campaign_urn'] self.http = HTTP.http_res() self.http.set_url(self.host+gconst.CAMP_DEL) self.arg_pass_in = {} self.arg_pass_in_msg = [] self.total_case = 0 # keep track of the total number of test cases self.unexpect_case = 0 # keep track of the total number of unexpected cases self.invalid_case_id_list = [] # keep track of the invalid case ID self.succ_report = [] # keep track of the passed cases self.err_report = [] # keep track of the unexpected cases
def __init__(self, server): if server == "mob": # moblizing server self.host = gconst.HOST elif server == "and": # andwellness server self.host = gconst.WELL else: print >> sys.stderr, "Error: Invalid host URL" sys.exit(1) # Get the authentication token self.TOKEN = HTTP.get_token(self.host, gconst.USERNAME, gconst.PASSWORD) # Four dictionaries, two for valid cases, two for invalid cases. # The two with actual value has one-to-one correspondency with # the other two dicts which contains tags to indicate the expected result # In order to reduce the test cases, I combine '' with gconst.MISS self.valid_arg = { "auth_token": [self.TOKEN], "client": ["curl", "a" * CLIENT_LIMIT], "campaign_urn": [gconst.CAMP_URN], "running_state": [gconst.MISS, "running", "stopped"], "privacy_state": [gconst.MISS, "private", "shared"], "class_urn_list": [gconst.MISS, gconst.CLS_URN, gconst.CLS_URN_LIST_COMMA], "xml": [(pycurl.FORM_FILE, XML_FILE)], "description": [gconst.MISS, "a" * DES_LIMIT], "user_role_list_add": [gconst.MISS, gconst.ROLE_SUP], "user_role_list_remove": [gconst.MISS, gconst.ROLE_SUP], } self.valid_arg_msg = { "auth_token": ["v"], "client": ["v", "v"], "campaign_urn": ["v"], "running_state": ["v", "v", "v"], "privacy_state": ["v", "v", "v"], "class_urn_list": ["v", "v", "v"], "xml": ["v"], "description": ["v", "v"], "user_role_list_add": ["v", "v"], "user_role_list_remove": ["v", "v"], } self.invalid_arg = { "auth_token": [gconst.MISS, gconst.RAND_STR, "a" * TOKEN_LIMIT, "auth_token1"], "client": [gconst.MISS, "client1", "a" * (CLIENT_LIMIT + 1)], "campaign_urn": [ "", gconst.MISS, gconst.CAMP_URN_LIST_COMMA, "a" * CAMP_LIMIT, gconst.CLS_UNKNOWN, "campaign_urn1", gconst.CAMP_URN_CAP, ], "running_state": ["a" * RUN_STATE_LIMIT, gconst.RAND_STR], "privacy_state": ["a" * PRI_STATE_LIMIT, gconst.RAND_STR], "class_urn_list": [gconst.CLS_UNKNOWN, "a" * CLS_LIMIT, gconst.RAND_STR], "xml": [(pycurl.FORM_FILE, XML_PDF), (pycurl.FORM_FILE, XML_DOC), (pycurl.FORM_FILE, XML_EXE)], "description": ["a" * (DES_LIMIT + INCR)], "user_role_list_add": [gconst.RAND_STR, gconst.NONEXIST_USER, gconst.USER_INVALID, gconst.ROLE_INVALID], "user_role_list_remove": [gconst.RAND_STR, gconst.NONEXIST_USER, gconst.USER_INVALID, gconst.ROLE_INVALID], } self.invalid_arg_msg = { "auth_token": [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.AUTH_FAIL], "client": [gconst.AUTH_FAIL, gconst.AUTH_FAIL, gconst.CLT_TOO_LONG], "campaign_urn": [ gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN, gconst.INVALID_CAMP_URN, gconst.CHANGE_CAMP_ID, ], "running_state": [gconst.INVALID_RUN_STATE, gconst.INVALID_RUN_STATE], "privacy_state": [gconst.INVALID_PRI_STATE, gconst.INVALID_PRI_STATE], "class_urn_list": [gconst.INVALID_CLS_URN, gconst.INVALID_CLS_URN, gconst.INVALID_CLS_URN], "xml": [gconst.INVALID_XML, gconst.INVALID_XML, gconst.INVALID_XML], "description": ["v"], "user_role_list_add": [ gconst.INVALID_ROLE, gconst.INVALID_USERNAME, gconst.INVALID_USERNAME, gconst.INVALID_ROLE, ], "user_role_list_remove": [ gconst.INVALID_ROLE, gconst.INVALID_USERNAME, gconst.INVALID_USERNAME, gconst.INVALID_ROLE, ], } self.para_name_list = [ "auth_token", "client", "campaign_urn", "running_state", "privacy_state", "class_urn_list", "xml", "description", "user_role_list_add", "user_role_list_remove", ] self.http = HTTP.http_res() self.http.set_url(self.host + gconst.CAMP_UP) self.arg_pass_in = {} self.arg_pass_in_msg = [] self.total_case = 0 # keep track of the total number of test cases self.unexpect_case = 0 # keep track of the total number of unexpected cases self.invalid_case_id_list = [] # keep track of the invalid case ID self.succ_report = [] # keep track of the passed cases self.err_report = [] # keep track of the unexpected cases
def __init__(self, server): if server == 'mob': self.host = gconst.HOST elif server == 'and': self.host = gconst.WELL else: print >> sys.stderr, 'Error: Invalid host URL' sys.exit(1) # Get the authentication token self.TOKEN = HTTP.get_token(self.host, gconst.USERNAME, gconst.PASSWORD) # use dictionary to construct all expectation result # Notice that the expected string is only a substring of expected response # TODO: finish construct the expected result self.exp_result = {1:"The content of element 'campaign' is not complete. One of '{campaignUrn}' is expected",\ 2:"XML document structures must start and end within the same entity",\ 3:"The content of elements must consist of well-formed character data or markup",\ 4:"The content of element 'campaign' is not complete. One of '{campaignName}' is expected",\ 5:"The content of element 'campaign' is not complete. One of '{serverUrl, surveys}' is expected",\ 6:"The content of element 'campaign' is not complete. One of '{surveys}' is expected",\ 7:"The content of element 'surveys' is not complete. One of '{survey}' is expected",\ 8:"The content of element 'survey' is not complete. One of '{id, title, description, introText, submitText, showSummary, editSummary, summaryText, anytime, contentList}' is expected",\ 9:"The content of element 'survey' is not complete. One of '{id}' is expected",\ 10:"The content of element 'survey' is not complete. One of '{title}' is expected",\ 11:"The content of element 'survey' is not complete. One of '{description, introText, submitText}' is expected",\ 12:"The content of element 'survey' is not complete. One of '{description, introText, showSummary}' is expected",\ 13:"Invalid survey config for survey id a. editSummary is required if showSummary is true",\ 14:"Invalid survey config for survey id a. summaryText is required if showSummary is true",\ 15:"The content of element 'survey' is not complete. One of '{description, introText, anytime}' is expected",\ 16:"Invalid content was found starting with element 'prompt'. One of '{description, introText, contentList}' is expected.",\ 17:"success",\ 18:"success",\ 19:"success",\ 20:"success",\ 21:"success",\ 22:"success",\ 23:"success",\ 24:"The content of element 'prompt' is not complete. One of '{displayType, explanationText, default, condition, skipLabel}' is expected",\ 25:"The content of element 'prompt' is not complete. One of '{displayLabel, explanationText, default, condition, skipLabel}' is expected",\ 26:"The content of element 'prompt' is not complete. One of '{id, explanationText, default, condition, skipLabel}' is expected",\ 27:"The content of element 'prompt' is not complete. One of '{promptText, explanationText, default, condition, skipLabel}' is expected",\ 28:"Invalid prompt config for prompt id d. abbreviatedText is required if showSummary on the parent survey is true",\ 29:"The content of element 'prompt' is not complete. One of '{explanationText, promptType, default, condition, skipLabel}' is expected",\ 30:"invalid prompt configuration",\ 31:"Invalid content was found starting with element 'key'. One of '{property}' is expected",\ 32:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 33:"The content of element 'property' is not complete. One of '{label}' is expected",\ 34:"The content of element 'prompt' is not complete. One of '{explanationText, default, condition, skippable, skipLabel}' is expected",\ 35:"Invalid prompt config for prompt id d. skipLabel is required if skippable is true",\ 36:"Invalid content was found starting with element 'messageText'. One of '{prompt, message}' is expected",\ 37:"The content of element 'message' is not complete. One of '{condition, messageText}' is expected",\ 38:MAXLESSMIN,\ 39:INTEGER,\ 40:INTEGER+'2147483648',\ 41:"success",\ 42:MAXLESSMIN,\ 43:INTEGER,\ 44:INTEGER+'2147483648',\ 45:NONNEGATIVE+'-10',\ 46:"max cannot be greater than min",\ 47:INTEGER,\ 48:INTEGER+'2147483648',\ 49:POSITIVE+'-100',\ 50:INTEGER+'min',\ 51:INTEGER+'2147483648',\ 52:NONNEGATIVE+'-100',\ 53:OVERFLOW,\ 54:OVERFLOW,\ 55:DUPLICATE+'choice key: 0',\ 56:DUPLICATE+'label: 10',\ 57:INTEGER+'min',\ 58:INTEGER+'2147483648',\ 59:NONNEGATIVE+'-10000',\ 60:"",\ 61:OVERFLOW,\ 62:DUPLICATE+'choice key: 0',\ 63:DUPLICATE+'label: 10',\ 64:INTEGER+'min',\ 65:INTEGER+'2147483648',\ 66:NONNEGATIVE+'-100',\ 67:OVERFLOW,\ 68:OVERFLOW,\ 69:"duplicate choice key found: 0",\ 70:"duplicate choice label found: 10",\ 71:INTEGER+'min',\ 72:INTEGER+'2147483648',\ 73:NONNEGATIVE+'-10000',\ 74:OVERFLOW,\ 75:OVERFLOW,\ 76:"duplicate choice key found: 0",\ 77:"duplicate choice label found: 10",\ 78:"At least 2 'property' nodes are required for prompt",\ 79:"At least 2 'property' nodes are required for prompt",\ 80:"success",\ 81:"success",\ 82:"invalid prompt configuration",\ 83:"missing 'res' property for XML fragment",\ 84:OVERFLOW,\ 85:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 86:INTEGER+'a',\ 87:POSITIVE+'-100',\ 88:OVERFLOW,\ 89:OVERFLOW,\ 90:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 91:OVERFLOW,\ 92:OVERFLOW,\ 93:"All Android package names must contain at least one '.' in",\ 94:MEANINGLESS_DOT,\ 95:OVERFLOW,\ 96:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 97:OVERFLOW,\ 98:OVERFLOW,\ 99:"All Android Activitys must contain at least one '.' in",\ 100:MEANINGLESS_DOT,\ 101:OVERFLOW,\ 102:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 103:OVERFLOW,\ 104:OVERFLOW,\ 105:"'min_runs' must be non-negative",\ 106:"'min_runs' is not a valid integer",\ 107:OVERFLOW,\ 108:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 109:OVERFLOW,\ 110:OVERFLOW,\ 111:OVERFLOW,\ 112:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 113:OVERFLOW,\ 114:OVERFLOW,\ 115:"'autolaunch' must be either 'true' or 'false'",\ 116:OVERFLOW,\ 117:"Invalid content was found starting with element 'label'. One of '{key}' is expected",\ 118:OVERFLOW,\ 119:OVERFLOW,\ 120:"'retries' must be non-negative",\ 121:"'retries' is not a valid integer",\ 122:OVERFLOW,\ 123:"Invalid key in properties list: output in",\ 124:OVERFLOW,\ 125:OVERFLOW,\ 126:OVERFLOW,\ 127:"success",\ 128:OVERFLOW,\ 129:OVERFLOW,\ 130:"campaign already exists",\ 131:OVERFLOW,\ 132:"campaignUrn is not a valid URN: urn:a",\ 133:OVERFLOW,\ 134:OVERFLOW,\ 135:"Invalid server URL",\ 136:OVERFLOW,\ 137:OVERFLOW,\ 138:"Invalid configuration: a duplicate id was found: c",\ 139:OVERFLOW,\ 140:OVERFLOW,\ 141:OVERFLOW,\ 142:OVERFLOW,\ 143:OVERFLOW,\ 144:OVERFLOW,\ 145:OVERFLOW,\ 146:OVERFLOW,\ 147:OVERFLOW,\ 148:BOOLEAN,\ 149:BOOLEAN,\ 150:BOOLEAN,\ 151:BOOLEAN,\ 152:BOOLEAN,\ 153:BOOLEAN,\ 154:OVERFLOW,\ 155:OVERFLOW,\ 156:BOOLEAN,\ 157:BOOLEAN,\ 158:BOOLEAN,\ 159:"The content of element 'contentList' is not complete. One of '{prompt, message}' is expected",\ 160:"Element 'contentList' cannot have character [children], because the type's content type is element-only",\ 161:"Element 'contentList' cannot have character [children], because the type's content type is element-only",\ 162:"success",\ 163:"success",\ 164:"success",\ 165:"success",\ 166:"success",\ 167:"success",\ 168:"success",\ 169:"success",\ 170:"success",\ 171:"success",\ 172:"success",\ 173:"success",\ 174:"success",\ 175:"success",\ 176:"success",\ 177:"success",\ 178:"success",\ 179:"success",\ 180:"success",\ 181:"success",\ 182:"success",\ 183:"success",\ 184:"success",\ 185:OVERFLOW,\ 186:"invalid display type: count count",\ 187:OVERFLOW,\ 188:OVERFLOW,\ 189:OVERFLOW,\ 190:OVERFLOW,\ 191:OVERFLOW,\ 192:OVERFLOW,\ 193:"Invalid configuration: a duplicate id was found: d",\ 194:"success",\ 195:OVERFLOW,\ 196:OVERFLOW,\ 197:OVERFLOW,\ 198:OVERFLOW,\ 199:OVERFLOW,\ 200:OVERFLOW,\ 201:OVERFLOW,\ 202:OVERFLOW,\ 203:"Invalid configuration: an unknown prompt type was found: !@#$%^()_+",\ 204:OVERFLOW,\ 205:"The content of element 'properties' is not complete. One of '{property}' is expected",\ 206:"Element 'properties' cannot have character [children], because the type's content type is element-only",\ 207:"Element 'properties' cannot have character [children], because the type's content type is element-only",\ 208:OVERFLOW,\ 209:"Value is not an integer: !@#$%^*()_+",\ 210:"Value is out of min-max range: 20",\ 211:"default values for text prompts are disallowed",\ 212:"default value [aaa] is missing from choices",\ 213:"default value [aaa] is missing from choices",\ 214:"default value [aaa] is missing from choices",\ 215:"default value [aaa] is missing from choices",\ 216:"Value is not an integer: !@#$%^*()_+",\ 217:"Value is out of min-max range: -1",\ 218:"default values are disallowed for photo prompts",\ 219:"default values are disallowed for remote Activity prompt types",\ 220:OVERFLOW,\ 221:"a condition is not allowed on the first prompt of a survey. invalid prompt id: r",\ 222:"invalid condition in multi or single choice prompt: <=",\ 223:BAD_COND_FORM+".==0",\ 224:BAD_COND_FORM+"r>=...",\ 225:INVALID_COND+"r>=====0",\ 226:INVALID_COND+"r>=0 not r == 1",\ 227:OVERFLOW,\ 228:BOOLEAN,\ 229:BOOLEAN,\ 230:BOOLEAN,\ 231:OVERFLOW,\ 232:OVERFLOW,\ 233:OVERFLOW,\ 234:OVERFLOW,\ 235:"a condition is not allowed on the first prompt of a survey. invalid prompt id: drink",\ 236:"invalid condition in multi or single choice prompt: <=",\ 237:INVALID_COND,\ 238:INVALID_COND,\ 239:INVALID_COND,\ 240:INVALID_COND,\ 241:OVERFLOW} self.http = HTTP.http_res() self.http.set_url(self.host+gconst.CAMP_CRET) # xml argument will be add and update in the blackbox_test function self.arg_pass_in = {'auth_token':self.TOKEN,\ 'client': 'curl',\ 'running_state': 'running',\ 'privacy_state': 'shared',\ 'class_urn_list': gconst.CLS_URN_LIST} self.total_case = 0 # keep track of the total number of test cases self.unexpect_case = 0 # keep track of the total number of unexpected cases self.invalid_case_id_list = [] # keep track of the invalid case ID self.succ_report = [] # keep track of the passed cases self.err_report = [] # keep track of the unexpected cases