-4
함수에 대한 단위 테스트를 쓰고 있습니다. 이 함수는 완벽하게 작동하지만 단위 테스트를 통해이 함수를 테스트하려고하면 unbondlocalerror가 표시됩니다. 나는 전역 변수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
로 정의하고 내 단위 테스트는 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