2014-04-23 2 views
0

그래서 파서가 예상 한 결과를 반환하는지 기본적으로 확인하는 단어 파서 함수의 일부에 대한 테스트를 작성하려고합니다. 테스트를 작성할 부분은 "peek"이라는 함수로 튜플 ('TYPE', 'WORD') 형식의 튜플 목록을 취하고 'TYPE'형식의 값을 반환합니다. 튜플의 일부. 다음과 같이 (파일 parser.py에) 파서의 들여다 부분에 대한 코드는 다음과 같습니다함수/파일의 nosetest에있는 신비한 구문 오류

"word_list는"문제의 튜플의 목록입니다
def peek(word_list): 
if word_list: 
    word = word_list[0] 
    return word[0] 
else: 
    return None 

. 내 테스트는 기본적으로 peek 함수가 실제로 "word_list"의 튜플 목록을 인식하고 그것이 통과하는 튜플에서 'TYPE'값을 반환하는지 확인하도록 설계되었습니다. 다음과 같이 테스트에 대한 내 코드는 다음과 같습니다

result = parser.peek(word_list) 
     ^
SyntaxError: invalid syntax 

내가 더블, 트리플 : 그것은 바로해야처럼 보이지만 내가 nosetests를 실행할 때, 내가 할 모든이 오류 메시지입니다

from nose.tools import * 
from ex49 import parser 


def test_peek(): 

    word_list = [('direction', 'north')] 
    assert_equal(parser.peek([('direction', 'north')], 'direction') 
    result = parser.peek(word_list) 
    assert_equal(result, ['direction']) 

- 모든 괄호, 쉼표, 연산자 및 변수 값을 검사했는데 SyntaxError가 없거나 무언가가 SyntaxError를 일으킬 수 있다고 생각하는 어떤 것도 표시되지 않습니다. 내가 여기서 누락 된 것이 있습니까? 어떤 통찰력이라도 대단히 감사 할 것입니다.

감사

+1

. 예를 들어's.count ("(")'와's.count (")")를 입력하면 간단히 위의 6이됩니다. – DSM

답변

1

그것의 단지 앞 줄에서 가까운 괄호 누락 : 당신은 더블, 트리플 검사, 여전히 그것을 찾을 수 없습니다, 당신은 당신이 확인하는 방식을 변경해야하는 경우

assert_equal(parser.peek([('direction', 'north')], 'direction') # <--) here 
+0

LOL. 와우, 내 두뇌는 내가이 화면을 보면서 보낸 모든 시간에서 튀어야합니다. 고마워, 나는 그 코드를 수백만 번 지나서 보았을 것임에 틀림 없다. 소년, 나는 멍청한 멍청이처럼 느껴 집니까> _ < – Specterace

+0

우리 모두해라! (왜 내가 그렇게 빨리 무엇인지 알고 있다고 생각하니? 백만 시간을 보냈다 : P) –

+1

@ 2-BitAlchemist - SO dev 팀은 질문에 "구문 오류"를 붙일 때마다 그 파란색 창 중 하나가 "위의 행을 확인 했습니까?"라는 메시지와 함께 나타납니다. :) – iCodez