-4
我正在为函数编写单元测试。 该函数完全适用于它自己,但是当我试图通过单元测试来测试这个函数时,它给了我一个unbondlocalerror。 我已经rev_get_event定义为一个全局变量python - UnboundLocalError:在赋值之前引用的局部变量
#return value for get event
global rev_get_event
def Get_event(username, password, eventID):
try:
payload = {'username': username, 'password': password}
s = requests.Session()
r = s.get("https://www.regonline.com/api/default.asmx/Login", params=payload)
login_info = minidom.parseString(r.text)
except requests.exceptions.RequestException:
logger.exception("Requests error")
api = login_info.getElementsByTagName('APIToken')
for api_token in api:
api_token = api_token.firstChild.nodeValue
payload2 = {'eventID' : eventID, "apiToken" : api_token }
rev_get_event = requests.get('https://www.regonline.com/api/default.asmx/GetEvent', params=payload2)
except requests.exceptions.RequestException:
logger.exception("Requests error")
return rev_get_event
和我的单元测试是:
def test_get_event_good(self):
result = rg.Get_event("eddietest", "eddietest", 18283)
get_event = minidom.parseString(result)
print result
success = get_event.getElementsByTagName('Success')
for answer in success:
answer = answer.firstChild.nodeValue
self.assertEqual(answer, "true", "connetion failed")
,这让我:
UnboundLocalError: local variable 'rev_get_event' referenced before assignment
'rev_get_event'只在'except'块中定义,如果'try'成功,则该变量永远不会被定义。 – CoryKramer 2014-11-21 19:30:12
我把它定义为一个全局变量“global rev_get_event” – jifferent 2014-11-21 19:34:51