From e9b5f545aba2ca36ca3b6642affd9004e94566b1 Mon Sep 17 00:00:00 2001 From: Igor Ashakov Date: Thu, 19 Mar 2026 20:36:51 +0300 Subject: [PATCH 1/3] Added test for class BooksCollection --- tests.py | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/tests.py b/tests.py index 383385e..da32690 100644 --- a/tests.py +++ b/tests.py @@ -1,5 +1,6 @@ from main import BooksCollector +import pytest # класс TestBooksCollector объединяет набор тестов, которыми мы покрываем наше приложение BooksCollector # обязательно указывать префикс Test class TestBooksCollector: @@ -21,4 +22,87 @@ def test_add_new_book_add_two_books(self): assert len(collector.get_books_rating()) == 2 # напиши свои тесты ниже - # чтобы тесты были независимыми в каждом из них создавай отдельный экземпляр класса BooksCollector() \ No newline at end of file + # чтобы тесты были независимыми в каждом из них создавай отдельный экземпляр класса BooksCollector() + + @pytest.mark.parametrize('name', ['А', 'А' *40]) + def test_add_new_book_valid_len_name_added(self, name): + collector = BooksCollector() + collector.add_new_book(name) + assert name in collector.get_books_genre() + + @pytest.mark.parametrize('name', ['', 'А' *41]) + def test_add_new_book_invalid_len_name_not_added(self, name): + collector = BooksCollector() + collector.add_new_book(name) + assert name not in collector.get_books_genre() + + def test_set_book_genre_valid_genre_set(self): + collector = BooksCollector() + collector.add_new_book('Астрал') + collector.set_book_genre('Астрал', 'Ужасы') + assert collector.get_book_genre('Астрал') == 'Ужасы' + + def test_set_book_genre_invalid_genre_not_set(self): + collector = BooksCollector() + collector.add_new_book('Астрал') + collector.set_book_genre('Астрал', 'Мультик') + assert collector.get_book_genre('Астрал') == '' + + def test_get_book_genre_return_correct_genre(self): + collector = BooksCollector() + name = 'Астрал' + genre = 'Ужасы' + collector.add_new_book(name) + collector.set_book_genre(genre) + assert collector.get_book_genre(name) == genre + + def test_get_books_with_specific_genre_return_list_of_books(self): + collector = BooksCollector() + collector.add_new_book('Астрал') + collector.set_book_genre('Астрал', 'Ужасы') + collector.add_new_book('Интерстеллар') + collector.set_book_genre('Интерстеллар', 'Фантастика') + collector.add_new_book('Назад в будущее') + collector.set_book_genre('Назад в будущее', 'Фантастика') + assert collector.get_books_with_specific_genre('Фантастика') == ['Интерстеллар', 'Назад в будущее'] + + def test_get_books_genre_return_all_books_with_genre(self): + collector = BooksCollector() + collector.add_new_book('Астрал') + collector.set_book_genre('Астрал', 'Ужасы') + collector.add_new_book('Интерстеллар') + collector.set_book_genre('Интерстеллар', 'Фантастика') + all = { + 'Астрал': 'Ужасы', + 'Интерстеллар': 'Фантастика' + } + assert collector.get_book_genre() == all + + def test_get_books_for_children_returns_only_child_genres(self): + collector = BooksCollector() + collector.add_new_book('Астрал') + collector.set_book_genre('Ужасы') + collector.add_new_book('Назад в будущее') + collector.set_book_genre('Фантастика') + assert collector.get_books_for_children() == ['Назад в будущее'] + + def test_add_book_in_favorites_successful(self): + collector = BooksCollector() + collector.add_new_book('Астрал') + collector.add_book_in_favorites('Астрал') + assert 'Астрал' in collector.favorites + + def test_delete_book_from_favorites_successful(self): + collector = BooksCollector() + collector.add_new_book('Астрал') + collector.add_book_in_favorites('Астрал') + collector.delete_book_from_favorites('Астрал') + assert 'Астрал' not in collector.favorites + + def test_get_list_of_favorites_books_return_all_list_favorites(self): + collector = BooksCollector() + collector.add_new_book('Интерстеллар') + collector.add_new_book('Астрал') + collector.add_book_in_favorites('Интерстеллар') + collector.add_book_in_favorites('Астрал') + assert collector.get_list_of_favorites_books() == ['Интерстеллар', 'Астрал'] From 8490f2d24e36a68df9d8d8a1e00f11cb56571fa6 Mon Sep 17 00:00:00 2001 From: Igor Ashakov Date: Fri, 20 Mar 2026 17:44:43 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=82=D0=B5=D1=81=D1=82=20=D0=BD=D0=B0=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=BE=D0=B5=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BD=D0=B8?= =?UTF-8?q?=D0=B3=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests.py b/tests.py index da32690..43b5aa5 100644 --- a/tests.py +++ b/tests.py @@ -36,6 +36,13 @@ def test_add_new_book_invalid_len_name_not_added(self, name): collector.add_new_book(name) assert name not in collector.get_books_genre() + def test_add_new_book_re_add_same_book_not_added(self): + collector = BooksCollector() + name = 'Астрал' + collector.add_new_book(name) + collector.add_new_book(name) + assert len(collector.get_books_genre()) == 1 + def test_set_book_genre_valid_genre_set(self): collector = BooksCollector() collector.add_new_book('Астрал') From 92fa2ff13c7ad3a9745f9f370dd4d6ba1e495592 Mon Sep 17 00:00:00 2001 From: Igor Ashakov Date: Fri, 20 Mar 2026 17:46:04 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=82=D0=B5=D1=81=D1=82=20=D0=BD=D0=B0=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=BD=D0=B8=D0=B3=D0=B8,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=BD=D0=B5=20=D0=B1=D1=8B=D0=BB=D0=B0=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BB=D0=BB=D0=B5=D0=BA=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests.py b/tests.py index 43b5aa5..dc76051 100644 --- a/tests.py +++ b/tests.py @@ -99,6 +99,11 @@ def test_add_book_in_favorites_successful(self): collector.add_book_in_favorites('Астрал') assert 'Астрал' in collector.favorites + def test_add_book_in_favorites_not_added_to_collection_not_added(self): + collector = BooksCollector() + collector.add_book_in_favorites('Назад в будущее') + assert len(collector.get_list_of_favorites_books()) == 0 + def test_delete_book_from_favorites_successful(self): collector = BooksCollector() collector.add_new_book('Астрал')