self.assertEqual(result, "I'm Fresh Out Of Ideas")
AssertionError: "I'M Fresh Out Of Ideas" != "I'm Fresh Out Of Ideas"
— I'M Fresh Out Of Ideas
?
+ I'm Fresh Out Of Ideas
?
----------------------------------------------------------------------
Ran 3 tests in 0.001s
FAILED (failures=1)
Наша функция увеличила букву m в конструкции I'm. В документации к функ-
ции title() мы обнаружили, что она плохо работает с апострофами. Нам действи-
тельно стоило сначала прочитать ее текст целиком.
В самом конце документации стандартной библиотеки, касающейся строк, мы
находим еще одного кандидата — вспомогательную функцию с именем capwords().
Используем ее в файле cap.py:
def just_do_it(text):
from string import capwords
return capwords(text)
$ python test_cap.py
...
----------------------------------------------------------------------
Ran 3 tests in 0.004s
OK
Наконец-то мы это сделали! Э-э-э, на самом деле нет. Нужно добавить еще один
тест в файл test_cap.py:
def test_words_with_quotes(self):
text = "\"You're despicable,\" said Daffy Duck"
result = cap.just_do_it(text)
self.assertEqual(result, "\"You're Despicable,\" Said Daffy Duck")
358
Глава 12. Быть питонщиком
Сработало?
$ python test_cap.py
...F
======================================================================
FAIL: test_words_with_quotes (__main__.TestCap)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_cap.py", line 30, in test_words_with_quotes
self.assertEqual(result, "\"You're
Despicable,\" Said Daffy Duck")
AssertionError: '"you\'re Despicable," Said Daffy Duck'
!= '"You\'re Despicable," Said Daffy Duck'
— "you're Despicable," Said Daffy Duck
?
+ "You're Despicable," Said Daffy Duck
?
----------------------------------------------------------------------
Ran 4 tests in 0.004s