Я пишу модульный тест для функции. Функция отлично работает на нем, но когда я попытался протестировать эту функцию через единичный тест, он дает мне 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
Я определяю его как глобальную varibale "global rev_get_event" – jifferent