Протестируйте методы programmer_define() и age_define() класса Contact.
Тестировать нужно все состояния: в метод programmer_define() надо по очереди передать False и True, а в age_define() надо проверить все возрастные категории.
Для проверки всех возможных вариантов создайте несколько экземпляров класса Contact с разными значениями полей year_birth и is_programmer.
Подсказка:
Создайте несколько экземпляров класса Contact, в каждом экземпляре задайте разные значения для year_birth и is_programmer.
Для каждого экземпляра напишите отдельный assert, вызывая проверяемый метод и сравнивая возвращаемое значение с ожидаемым.
Код:
class Contact:
def __init__(self, name, year_birth, is_programmer):
self.name = name
self.year_birth = year_birth
self.is_programmer = is_programmer
def age_define(self):
if 1946 < self.year_birth < 1980:
return 'Олдскул'
if self.year_birth >= 1980:
return 'Молодой'
return 'Старейшина'
def programmer_define(self):
if self.is_programmer:
return 'Программист'
return 'Нормальный'
def show_contact(self):
return(f'{self.name}, '
f'возраст: {self.age_define()}, '
f'статус: {self.programmer_define()}')
def print_contact(self):
print(self.show_contact())
test_old_none_programmer = Contact('Пушкин', 1945, True)
assert test_old_none_programmer.age_define() == 'Старейшина',('Ошибка')
test_old_none_programmer = Contact('Пушкин', 1947, True)
assert test_old_none_programmer.age_define() == 'Олдскул',('Ошибка')
test_old_none_programmer = Contact('Пушкин', 1981, True)
assert test_old_none_programmer.age_define() == 'Молодой',('Ошибка')
test_old_none_programmer = Contact('Пушкин', 1945, True)
assert test_old_none_programmer.programmer_define() == 'Программист',('Нормальный')
test_old_none_programmer = Contact('Пушкин', 1945, False)
assert test_old_none_programmer.programmer_define() == 'Нормальный',('Программист')
# Создайте экземпляр класса Contact с необходимыми параметрами
# Например, test_old_none_programmer = Contact('Пушкин', 1799, False).
# Напишите assert, и в нём проверьте,
# что метод programmer_define() этого экземпляра возвращает строку "Нормальный"
# Во втором assert проверьте, возвращает ли метод age_define() значение "Старейшина"
# Затем создайте другой экземпляр с другими параметрами
# И в assert проверьте, вернут ли и его методы ожидаемый результат.
# Создайте столько экземпляров, сколько нужно,
# чтобы через разные assert проверить все методы во всех вариантах.