Почему не работает тест без if __name__ == '__main__'?

Помогите пожалуйста разобраться почему без строчки if __name__ == '__main__': перед unittest.main() тест не находит?

Код:

import unittest
from name_function import get_formatted_name


class NamesTestCase(unittest.TestCase):
    """Тесты для 'name_function.py'."""

    def test_first_last_name(self):
        """Имена вида 'Janis Joplin' работают правильно?"""
        formatted_name = get_formatted_name('janis', 'joplin')
        self.assertEqual(formatted_name, 'Janis Joplin')


unittest.main()

В модуле name_function только одна функция:

def get_formatted_name(first, last):
    """Строит отформатированное полное имя."""
    full_name = f"{first} {last}"
    return full_name.title()

Результат на скриншоте: введите сюда описание изображения

Использую PyCharm последней версии. Знаю, что для того, чтобы тест работал в PyCharm можно вообще эти строчки не добавлять, но хочу разобраться именно с самой логикой: почему без строки if __name__ == '__main__': результат как на скриншоте, а если ее добавить, то все работает как надо?


Ответы (0 шт):