From b3278af212dca5cee7e90b4388277830132c2464 Mon Sep 17 00:00:00 2001 From: Ivan Nosovets Date: Mon, 2 Feb 2026 09:40:28 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9C=D0=BE=D0=B9=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D0=B9=204=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +++++++++- tests.py | 80 ++++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 77 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 1cc701d..b5fb963 100644 --- a/README.md +++ b/README.md @@ -1 +1,13 @@ -# qa_python \ No newline at end of file +# сделанные тесты + +#добавление двух книг +#Неправильное название +#жанр к названию кииги +#возврат жанра по книги +#вывод списка по жанру +#вывод словаря +#проверка возвращения книги по соответствущим для детей жанрам +#недобавление книги жанра для детей +#добавление в словарь избранную книг +#удаление книги +#вывод списка избранного diff --git a/tests.py b/tests.py index 383385e..114f8a1 100644 --- a/tests.py +++ b/tests.py @@ -1,24 +1,72 @@ +import pytest + from main import BooksCollector -# класс TestBooksCollector объединяет набор тестов, которыми мы покрываем наше приложение BooksCollector -# обязательно указывать префикс Test class TestBooksCollector: - - # пример теста: - # обязательно указывать префикс test_ - # дальше идет название метода, который тестируем add_new_book_ - # затем, что тестируем add_two_books - добавление двух книг +#Исправленные тесты +#добавление двух книг def test_add_new_book_add_two_books(self): - # создаем экземпляр (объект) класса BooksCollector collector = BooksCollector() - - # добавляем две книги collector.add_new_book('Гордость и предубеждение и зомби') collector.add_new_book('Что делать, если ваш кот хочет вас убить') + assert len(collector.get_books_genre()) == 2 +#Неправильное название + @pytest.mark.parametrize('name', ['', 'a'*41]) + def test_add_new_book_invalid_name_lenght(self, name): + collector = BooksCollector() + collector.add_new_book(name) + assert name not in collector.books_genre +#жанр к названию кинги + def test_set_book_genre_add_one_genre(self): + collector = BooksCollector() + collector.add_new_book('Голова профессора Доуэля') + collector.set_book_genre('Голова профессора Доуэля', 'Фантастика') + assert collector.books_genre['Голова профессора Доуэля'] == 'Фантастика' +#возврат жанра по книги + def test_get_book_genre_positive(self): + collector = BooksCollector() + collector.add_new_book('Оно') + collector.books_genre['Оно'] = 'Ужасы' + assert collector.get_book_genre('Оно') == 'Ужасы' + #вывод списка по жанру + def test_get_books_with_specific_genre_positive(self): + collector = BooksCollector() + collector.books_genre.update({'Убийство на улице Морг': 'Детективы', 'Рассказы о Шерлоке Холмсе': 'Детективы'}) + result = collector.get_books_with_specific_genre('Детективы') + assert result == ['Убийство на улице Морг', 'Рассказы о Шерлоке Холмсе'] +#вывод словаряя + def test_get_books_genre_positive(self): + collector = BooksCollector() + collector.books_genre = {'Оно': 'Ужасы'} + assert collector.get_books_genre() == {'Оно': 'Ужасы'} +# + def test_get_books_for_children_positive(self): + collector = BooksCollector() + collector.books_genre = {'Голова профессора Доуэля': 'Фантастика'} + result = collector.get_books_for_children() + assert 'Голова профессора Доуэля' in result +#недобавление книги жанра для детей + def test_get_books_for_children_negative(self): + collector = BooksCollector() + collector.books_genre = {'Оно': 'Ужасы'} + result = collector.get_books_for_children() + assert 'Оно' not in result + +#добавление в словарь избранную книг + def test_add_book_in_favorites_positive(self): + collector = BooksCollector() + collector.add_new_book('Трое в лодке, не считая собаки') + collector.add_book_in_favorites('Трое в лодке, не считая собаки') + assert 'Трое в лодке, не считая собаки' in collector.favorites + #удаление книги + def test_delete_book_from_favorites_positive(self): + collector = BooksCollector() + collector.favorites = ['Убийство на улице Морг'] + collector.delete_book_from_favorites('Убийство на улице Морг') + assert 'Убийство на улице Морг' not in collector.favorites +#вывод списка избранного + def test_get_list_of_favorites_books_positive(self) + collector = BooksCollector() + collector.favorites = ['Гордость и предубеждение и зомби', 'Что делать, если ваш кот хочет вас убить'] + assert collector.get_list_of_favorites_books() == ['Гордость и предубеждение и зомби', 'Что делать, если ваш кот хочет вас убить'] - # проверяем, что добавилось именно две - # словарь books_rating, который нам возвращает метод get_books_rating, имеет длину 2 - assert len(collector.get_books_rating()) == 2 - - # напиши свои тесты ниже - # чтобы тесты были независимыми в каждом из них создавай отдельный экземпляр класса BooksCollector() \ No newline at end of file From ed0912924a00da8c4d3179b83fb9289c2ebea9bc Mon Sep 17 00:00:00 2001 From: ivannosovec Date: Mon, 2 Feb 2026 20:37:01 +0300 Subject: [PATCH 2/2] Update tests.py --- tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests.py b/tests.py index 114f8a1..502fd00 100644 --- a/tests.py +++ b/tests.py @@ -65,7 +65,7 @@ def test_delete_book_from_favorites_positive(self): collector.delete_book_from_favorites('Убийство на улице Морг') assert 'Убийство на улице Морг' not in collector.favorites #вывод списка избранного - def test_get_list_of_favorites_books_positive(self) + def test_get_list_of_favorites_books_positive(self): collector = BooksCollector() collector.favorites = ['Гордость и предубеждение и зомби', 'Что делать, если ваш кот хочет вас убить'] assert collector.get_list_of_favorites_books() == ['Гордость и предубеждение и зомби', 'Что делать, если ваш кот хочет вас убить']