Вот часть модульного теста:
from nose.tools import *
from testing import *
def test_directions():
assert_equal(scan("north"), [('direction', 'north')])
result = scan("north south east")
assert_equal(result, [('direction', 'north'), ('direction', 'south'), ('direction', 'east')])
А вот мой код:
import string
def convert_number(s):
try:
return int(s)
except ValueError:
return None
def scan(s):
direction_words= ("north", "south", "east", "west", "down", "up", "left", "right", "back", "forwards", "backwards")
verbs= ("go", "stop", "kill", "eat", "shoot", "run", "hide", "dodge")
stop_words= ("the", "in", "of", "from", "at", "it")
nouns= ("door", "bear", "princess", "cabinet", "gold", "money", "chest", "gun", "sword")
numbers= s.split()
i=0
j=0
g=0
m=0
a=0
b=0
while a < len(numbers):
if type(convert_number(numbers[a])) == int:
print [('number', int(numbers[a]) )]
a += 1
else:
a += 1
while i < len(direction_words):
if direction_words[i] in s.split():
s= string.lower(s)
print [('direction', direction_words[i] ) ]
i+=1
else:
i+=1
while j < len(verbs):
if verbs[j] in s.split():
s= string.lower(s)
print [('verb', verbs[j] )]
j+=1
else:
j+=1
while g < len(stop_words):
if stop_words[g] in s.split():
s= string.lower(s)
print [('stop', stop_words[g] )]
g+=1
else:
g+=1
while m < len(nouns):
if nouns[m] in s.split():
s= string.lower(s)
print [('noun', nouns[m] )]
m+=1
else:
m+=1
while b< len(s.split()):
if numbers[b] not in nouns:
if numbers[b] not in stop_words:
if numbers[b] not in verbs:
if numbers[b] not in direction_words:
if type(convert_number(numbers[b])) != int:
print [('error', numbers[b] )]
b += 1
else:
b+=1
else: b+=1
else: b+=1
else: b+=1
else: b+=1
else:
return
Когда я запускаю модульные тесты, вот что я получаю:
F
======================================================================
FAIL: tests.ex48_tests.test_directions
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/Users/Adam/Desktop/projects/ex48/tests/ex48_tests.py", line 6, in test_directions
assert_equal(scan("north"), [('direction', 'north')])
AssertionError: None != [('direction', 'north')]
-------------------- >> begin captured stdout << ---------------------
[('direction', 'north')]
--------------------- >> end captured stdout << ----------------------
----------------------------------------------------------------------
Ran 1 test in 0.015s
FAILED (failures=1)
Я не понимаю, как тест не проходит.Когда я запускаю программу в терминале, она дает тот же результат, что и в модульных тестах.Я не понимаю, почему это не проходит.