Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 277

$ python test_cap.py

F.

======================================================================

FAIL: test_multiple_words (__main__.TestCap)

----------------------------------------------------------------------

Traceback (most recent call last):

File "test_cap.py", line 20, in test_multiple_words

self.assertEqual(result, 'A Veritable Flock Of Ducks')

AssertionError: 'A veritable flock of ducks' != 'A Veritable Flock Of Ducks'

— A veritable flock of ducks

?

+ A Veritable Flock Of Ducks

?

----------------------------------------------------------------------

Ran 2 tests in 0.001s

FAILED (failures=1)

Пакет устроил результат первой проверки (test_one_word), но не результат

второй (test_multiple_words). Стрелки вверх (^) показывают, какие строки отлича-

ются.

Что такого особенного в примере с несколькими словами? После прочтения

документации для строковой функции capitalize (https://docs.python.org/3/library/

stdtypes.html#str.capitalize) мы поняли причину проблемы: она увеличивает только

первую букву первого слова. Возможно, нам сразу нужно было начать с чтения

документации.

Нам нужна другая функция. После прочтения той страницы мы нашли функцию

title() (https://docs.python.org/3/library/stdtypes.html#str.title). Изменим файл cap.py

так, чтобы в нем вместо функции capitalize() использовалась функция title():

def just_do_it(text):

return text.title()

Повторите тесты и взгляните на результат:

$ python test_cap.py

..

----------------------------------------------------------------------

Ran 2 tests in 0.000s

OK

Тестируем код

357

Все прошло отлично. Хотя на самом деле нет. Нам нужно добавить в файл

test_cap.py как минимум еще один метод:

def test_words_with_apostrophes(self):

text = "I'm fresh out of ideas"

result = cap.just_do_it(text)

self.assertEqual(result, "I'm Fresh Out Of Ideas")

Запустите тесты еще раз:

$ python test_cap.py

..F

======================================================================

FAIL: test_words_with_apostrophes (__main__.TestCap)

----------------------------------------------------------------------

Traceback (most recent call last):